Zloy_Gelud

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору all043 Цитата: Знаю что этот вопрос не из легких [..] | Да вопрос собстно на 10 минут..тем более где я уже писал подобное, лень искать ток. Глобальные функции: Код: function GetSFXPath() strPath = ""; strArg = _CommandLineArgs[1]; if strArg then strPath = String.Right(strArg, String.Length(strArg) - 10); end if (String.Length(strPath) > 0) then tblPath = String.SplitPath(strPath); strPath = tblPath.Drive..String.Left(tblPath.Folder, String.Length(tblPath.Folder) - 1); end return strPath; end _SourceFolder = GetSFXPath(); -- путь к папке с софтом strPathToSoft = _SourceFolder.."\\SOFTWARE"; function File.FindEx(strFolderPath, tblExts) local tblResult = {}; if (tblExts ~= nil) and (Table.Count(tblExts) > 0) then for n, strExt in tblExts do local tblFilePaths = File.Find(strFolderPath, strExt, false, false, nil, nil); if (tblFilePaths) then for _, strFilePath in tblFilePaths do tblResult[Table.Count(tblResult) + 1] = strFilePath; end end end end if (Table.Count(tblResult) == 0) then return nil else return tblResult; end end | On Preload: Код: -- таблица файлов tblFilePaths = File.FindEx(strPathToSoft, {'*.exe', '*.msi'}); if (tblFilePaths ~= nil) then for i, strPath in tblFilePaths do -- заполняем текст чекбоксов именами файлов из таблицы CheckBox.SetText("CheckBox_"..i, String.SplitPath(strPath).Filename); end end | On Click кнопки установки: Код: for n=1, Table.Count(tblFilePaths) do -- если выбран чекбокс if (CheckBox.GetChecked("CheckBox_"..n)) then -- запускаем ассоциированный с ним файл File.Run(tblFilePaths[n], "", "", SW_SHOWNORMAL, true); -- снимем 'птичку' после установки CheckBox.SetChecked("CheckBox_"..n, false); end end | Пару правил, чтобы было все шоколадно : 1. Имена чекбоксам даешь в таком стиле: CheckBox_1, CheckBox_2, CheckBox_3, ..., CheckBox_n 2. Количество программ желательно должно соответствовать количеству чекбоксов на странице. | Всего записей: 3273 | Зарегистр. 30-05-2007 | Отправлено: 01:30 10-01-2009 | Исправлено: Zloy_Gelud, 01:32 10-01-2009 |
|