Войти

Показать полную графическую версию : [решено] Как сделать выбор устанавливаемых программ по чекбокс?


Pozia
17-09-2010, 18:30
Собственно нашел вот такую (http://forum.oszone.net/showthread.php?t=173538&page=3&highlight=%F7%E5%EA%E1%EE%EA%F1) тему но не смог переделать под свои нужды. Прикол с папками как в той теме мне не нужен. Мне просто нужна возможность выбирать птичками необходимые пункты. Снизу кнопка Выполнить или Отмена. При выполнении скрипта нужно чтобы каждой птичке соответствовала выполнение своего действия через команду RunWait. При этом, после нажатия Выполнить желательно чтобы кнопки и птички затемнились чтоб нельзя было чего нить нажать. А окно пусть не исчезает. А для индикации того, что система не висит может можно чтонить в окно повесить типо как в винде снизу справа точки моргают или что нить другое. Желательно чтобы количество птичек можно было бы легко изменять без сильной переделки скрипта. Спасибо.

Creat0R
17-09-2010, 18:55
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GUIConstantsEx.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <ButtonConstants.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <WindowsConstants.au3>

; Только эту строку и нужно править для добавления новых, или удаления пунктов ;)
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $sProgs = 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5'

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) Const (http://www.autoitscript.com/autoit3/docs/keywords.htm#Const) $aProgs = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)($sProgs, '|')
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $anCheckBoxes[$aProgs[0]+1] = [$aProgs[0]]

$Form1 = GUICreate (http://www.autoitscript.com/autoit3/docs/functions/GUICreate.htm)("", 500, 500)

$iTop = 10
$iLeft = 20

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aProgs[0]
$anCheckBoxes[$i] = GUICtrlCreateCheckbox (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateCheckbox.htm)(StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '^.*=', ''), $iLeft, $iTop, -1, 15)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 400)

$iTop += 20

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iTop > 440 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iTop = 10
$iLeft += 100
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)

GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Status:", 200, 475, 460, 15)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)(-1, 9, 800)
$nStatus = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("", 250, 476, 240, 15)
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)(-1, 0xFF0000)

$nStart = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Выполнить", 10, 470, 80, 25)
$nCancel = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Отмена", 100, 470, 80, 25)

GUISetState (http://www.autoitscript.com/autoit3/docs/functions/GUISetState.htm)(@SW_SHOW (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_show))

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$nMsg = GUIGetMsg (http://www.autoitscript.com/autoit3/docs/functions/GUIGetMsg.htm)()

Switch (http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch) $nMsg
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $GUI_EVENT_CLOSE, $nCancel
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $nStart
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aProgs[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) GUICtrlRead (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlRead.htm)($anCheckBoxes[$i]) = $GUI_CHECKED Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sProgName = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '^.*=', '')
$sProgExe = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '=.*$', '')

GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($nStatus, StringFormat (http://www.autoitscript.com/autoit3/docs/functions/StringFormat.htm)("Please wait, installing [%s]...", $sProgName))

GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 800)
_ControlsSetState($GUI_DISABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])

RunWait (http://www.autoitscript.com/autoit3/docs/functions/RunWait.htm)($sProgExe)

GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 400)
_ControlsSetState($GUI_ENABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)

GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($nStatus, "Done!")
EndSwitch (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _ControlsSetState($nState, $iFirst, $iLast)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $iCtrlID = $iFirst To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $iLast
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($iCtrlID, $nState)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Pozia
17-09-2010, 19:06
Два вопроса.
1. Как все же добавить такого рода команды:
Run(@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\1.7z"', @ScriptDir)
Run(@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\2.7z"', @ScriptDir)
Run(@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\3.7z"', @ScriptDir)
Run(@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\4.7z"', @ScriptDir)
Run(@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\5.7z"', @ScriptDir)

Копчиком чую что это где то в строке:
$sProgs = 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5'

а как правильно записать не знаю.

2. После нажатия кнопки Выполнить и выполнения всех команд необходимо чтобы окно закрылось

Creat0R
17-09-2010, 19:25
Копчиком чую что это где то в строке »
Угу, вот только не знаю зачем копчик использовать :dont-know , в скрипте ведь над этой строкой написано что её только и нужно править:

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $sProgs =
@ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\1.7z"=Driver 1|' & _
@ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\2.7z"=Driver 2|' & _
@ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\3.7z"=Driver 3|' & _
@ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\4.7z"=Driver 4|' & _
@ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\5.7z"=Driver 5'

После нажатия кнопки Выполнить и выполнения всех команд необходимо чтобы окно закрылось »
Поссле (или вместо, т.к при закрытий оно особо значения не имеет)
GUICtrlSetData($nStatus, "Done!")
Добавь
GUIDelete($Form1)
Exit

Pozia
17-09-2010, 20:22
Creat0R, выскакивает ошибка Error: Error in expression

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

; Только эту строку и нужно править для добавления новых, или удаления пунктов ;)

Global $sProgs =
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\1.7z"=Driver 1|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\2.7z"=Driver 2|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\3.7z"=Driver 3|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\4.7z"=Driver 4|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\5.7z"=Driver 5'

Global Const $aProgs = StringSplit($sProgs, '|')
Global $anCheckBoxes[$aProgs[0]+1] = [$aProgs[0]]

$Form1 = GUICreate("", 500, 500)

$iTop = 10
$iLeft = 20

For $i = 1 To $aProgs[0]
$anCheckBoxes[$i] = GUICtrlCreateCheckbox(StringRegExpReplace($aProgs[$i], '^.*=', ''), $iLeft, $iTop, -1, 15)
GUICtrlSetFont($anCheckBoxes[$i], 9, 400)

$iTop += 20

If $iTop > 440 Then
$iTop = 10
$iLeft += 100
EndIf
Next

GUICtrlCreateLabel("Status:", 200, 475, 460, 15)
GUICtrlSetFont(-1, 9, 800)
$nStatus = GUICtrlCreateLabel("", 250, 476, 240, 15)
GUICtrlSetColor(-1, 0xFF0000)

$nStart = GUICtrlCreateButton("Выполнить", 10, 470, 80, 25)
$nCancel = GUICtrlCreateButton("Отмена", 100, 470, 80, 25)

GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()

Switch $nMsg
Case $GUI_EVENT_CLOSE, $nCancel
Exit
Case $nStart
For $i = 1 To $aProgs[0]
If GUICtrlRead($anCheckBoxes[$i]) = $GUI_CHECKED Then
$sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
$sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')

GUICtrlSetData($nStatus, StringFormat("Please wait, installing [%s]...", $sProgName))

GUICtrlSetFont($anCheckBoxes[$i], 9, 800)
_ControlsSetState($GUI_DISABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])

RunWait($sProgExe)

GUICtrlSetFont($anCheckBoxes[$i], 9, 400)
_ControlsSetState($GUI_ENABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])
EndIf
Next

GUICtrlSetData($nStatus, "Done!")
GUIDelete($Form1)
Exit
EndSwitch
WEnd

Func _ControlsSetState($nState, $iFirst, $iLast)
For $iCtrlID = $iFirst To $iLast
GUICtrlSetState($iCtrlID, $nState)
Next
EndFunc

Creat0R
17-09-2010, 20:32
выскакивает ошибка Error »
Упс:

Global $sProgs = _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\1.7z"=Driver 1|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\2.7z"=Driver 2|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\3.7z"=Driver 3|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\4.7z"=Driver 4|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\5.7z"=Driver 5'

Pozia
17-09-2010, 20:57
еще нюанс. Вот при такой записи обрывает слова:

Global $sProgs = _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\1.7z"=DriversNEW Computer|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\2.7z"=DriversNEW Notebook|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\3.7z"=Driver 3|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\4.7z"=Driver 4|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\5.7z"=Driver 5'

В окне только DriversNEW Compu и DriversNEW Noteboo

Как сделать чтоб не обрезало? Фразы планирую еще чуть длинее писать

Pozia
17-09-2010, 21:23
и еще. пытаюсь записать команду чтоб выполнялась скрыто и получаю ошибку: Unterminated string

Пишу так:

Global $sProgs = _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\DriversNEWComputer.7z"', @ScriptDir, @SW_HIDE"=DriversNEW Computer|' & _
@ScriptDir & '\7z.exe x -y -aoa -o"' & @WindowsDir & '\DriversPozia" "' & @ScriptDir & '\DriversNEWNotebook.7z"=DriversNEW Notebook'

Creat0R
17-09-2010, 21:23
при такой записи обрывает слова »
Это из за размера Checkbox:

#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <GUIConstantsEx.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <ButtonConstants.au3>
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <WindowsConstants.au3>

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $iTotalProgs = 5

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $aProgs[$iTotalProgs + 1][4] = _
[[$iTotalProgs], _
['DriversNEW Computer', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\1.7z"', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir), @SW_HIDE (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide)], _
['DriversNEW Notebook', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\2.7z"', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir), @SW_HIDE (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide)], _
['Driver 3', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\3.7z"', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir), @SW_HIDE (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide)], _
['Driver 4', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\4.7z"', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir), @SW_HIDE (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide)], _
['Driver 5', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\7z.exe x -y -aoa -o"' & @WindowsDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@windowsdir) & '\DriversPozia" "' & @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\5.7z"', @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir), @SW_HIDE (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_hide)] _
]

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $anCheckBoxes[$iTotalProgs + 1] = [$iTotalProgs]

$Form1 = GUICreate (http://www.autoitscript.com/autoit3/docs/functions/GUICreate.htm)("", 500, 500)

$iTop = 10
$iLeft = 20

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $iTotalProgs
$anCheckBoxes[$i] = GUICtrlCreateCheckbox (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateCheckbox.htm)($aProgs[$i][0], $iLeft, $iTop, 200, 15)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 400)

$iTop += 20

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iTop > 440 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iTop = 10
$iLeft += 210
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)

GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("Status:", 200, 475, 460, 15)
GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)(-1, 9, 800)
$nStatus = GUICtrlCreateLabel (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateLabel.htm)("", 250, 476, 240, 15)
GUICtrlSetColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetColor.htm)(-1, 0xFF0000)

$nStart = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Выполнить", 10, 470, 80, 25)
$nCancel = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Отмена", 100, 470, 80, 25)

GUISetState (http://www.autoitscript.com/autoit3/docs/functions/GUISetState.htm)(@SW_SHOW (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_show))

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$nMsg = GUIGetMsg (http://www.autoitscript.com/autoit3/docs/functions/GUIGetMsg.htm)()

Switch (http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch) $nMsg
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $GUI_EVENT_CLOSE, $nCancel
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $nStart
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $iTotalProgs
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) GUICtrlRead (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlRead.htm)($anCheckBoxes[$i]) = $GUI_CHECKED Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sProgramName = $aProgs[$i][0]
$sProgramExe = $aProgs[$i][1]
$sWorkingDir = $aProgs[$i][2]
$nRunState = $aProgs[$i][3]

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sWorkingDir == "" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) $sWorkingDir = @WorkingDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@workingdir)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $nRunState == "" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) $nRunState = @SW_SHOW (http://www.autoitscript.com/autoit3/docs/macros.htm#@sw_show)

GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($nStatus, StringFormat (http://www.autoitscript.com/autoit3/docs/functions/StringFormat.htm)("Please wait, installing [%s]...", $sProgramName))

GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 800)
_ControlsSetState($GUI_DISABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])

RunWait (http://www.autoitscript.com/autoit3/docs/functions/RunWait.htm)($sProgramExe, $sWorkingDir, $nRunState)

GUICtrlSetFont (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetFont.htm)($anCheckBoxes[$i], 9, 400)
_ControlsSetState($GUI_ENABLE, $anCheckBoxes[1], $anCheckBoxes[$anCheckBoxes[0]])
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)

GUICtrlSetData (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetData.htm)($nStatus, "Done!")
GUIDelete (http://www.autoitscript.com/autoit3/docs/functions/GUIDelete.htm)($Form1)
ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop)
EndSwitch (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _ControlsSetState($nState, $iFirst, $iLast)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $iCtrlID = $iFirst To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $iLast
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)($iCtrlID, $nState)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Pozia
17-09-2010, 21:41
Creat0R, а по поводу выполнения команды скрыто подскажете?

Creat0R
17-09-2010, 21:43
пытаюсь записать команду чтоб выполнялась скрыто и получаю ошибку »
Ну тут нужно немного изменить обработчик, и в этом случае я бы использовал сразу массив, так будет легче для разбора. Поправил пример.

Pozia
17-09-2010, 22:01
Это из за размера Checkbox: »
не совсем понял. вижу вы изменили 9 на 8,5. Это высота шрифта? В данном случае помогло. Но я записал фразу длиннее и опять обрезало. Шрифт ведь уменьшать все время не получится. По другому обрезку никак не устранить?

Поправил пример. »
все работатет, но дос окно по прежнему не скрыто. А в нем виден весь процесс распаковки

Creat0R
17-09-2010, 23:37
Шрифт ведь уменьшать все время не получится »
Ну в последнем варианте я задал точную длину строки (200), если этого мало, то можно добавить. Но также нужно будет увеличить и итерацию переменной $iLeft.

дос окно по прежнему не скрыто »
Поправил.

Pozia
18-09-2010, 00:21
Последний вроде вопрос. Опять же по вместительности. В строке

GUICtrlSetData($nStatus, StringFormat("Please wait, installing [%s]...", $sProgramName))

не все влазит в переменой %s. Где расширить поле?

разобрался




© OSzone.net 2001-2012