Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: AutoIt Based Post-Install Wizard
Показать сообщение отдельно

Пользователь


Сообщения: 67
Благодарности: 13

Профиль | Отправить PM | Цитировать


Писал давно что-то подобное для себя.
Выглядит примерно так:
Код: Выделить весь код
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$hKoeff=23;высота строки (Лень было делать 2 колонки, так что я просто уплотнил список...)
$path=where_am_I();Ищем букву диска, с которого запущена WPI
dim $Checkbox[50],$Label[50];массивы идентификаторов для гуя
$num_of_files=IniReadSectionNames($path&"\soft\il.ini");Читаем список софта
$Form1 = GUICreate("Йа устанавливалко", 272,$hKoeff*$num_of_files[0], 3, 3,-1,$WS_EX_TOPMOST);Рисуем окошко
for $i=1 to $num_of_files[0]
	$Checkbox[$i]=GUICtrlCreateCheckbox("", 8, $i*$hKoeff-27, 17, 25);Рисуем чекбоксы
	if IniRead($path&"\soft\il.ini",$num_of_files[$i],"status_install","")=1 Then GUICtrlSetState($Checkbox[$i],$GUI_CHECKED);Обязательные к установке программы получают прочеканные чекбоксы
	$Label[$i]=GUICtrlCreateLabel($num_of_files[$i], 30, $i*$hKoeff-21, 225, 17);Рисуем метки для названий программ
Next
GUISetState(@SW_SHOW)

Sleep(10000)
for $i=1 to $num_of_files[0]
	if GUICtrlRead($Checkbox[$i])=1 Then RunWait(IniRead($path&"\soft\il.ini",$num_of_files[$i],"path",""));Ставим программы из папки "soft" по списку из файла "il.ini" (Структура файла приведена ниже)
	GUICtrlSetState($Checkbox[$i],$GUI_DISABLE);контролы установленных программ отмечаются как disabled (серыми становятся в списке) 
	GUICtrlSetState($Label[$i],$GUI_DISABLE)
Next

Func where_am_I()
	$drv=DriveGetDrive('all')
	for $i=1 to $drv[0]
		if $drv[$i]<>'a:' And FileExists($drv[$i]&'\boot.bin') Then Return $drv[$i];Ищем файл-идентификатор на всех дисках и возвращаем его букву
	Next
	Exit	
EndFunc
Структура файла il.ini:
[Название_программы]
path=Имя_файла.exe
status_install=1(Если 0 - чекбокс будет неотмеченным и программа по умолчанию не будет установлена)
P. S. Программы из списка должны быть самоустанавливающимися.

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 04:06, 21-08-2009 | #2

Название темы: AutoIt Based Post-Install Wizard