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

Показать сообщение отдельно

Аватара для Centrinar

Старожил


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

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


Сделал как в образце, но он прибовляет сразу 100
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $sProgs = 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5' 



Global  $iProgr = 0
Global Const $aProgs = StringSplit($sProgs, '|')
Global $anCheckBoxes[$aProgs[0]+1]
Global $aCheckedIcons[$aProgs[0]+1]
Global $aUnCheckedIcons[$aProgs[0]+1]
Global $iChecked_Counter = 0 ;Счетчик для отмеченных чекбоксов
Global $iProgress_Step = 100 / $aProgs[0] ;Шаг прогресса
Global $iProgress = 0 ;Счётчик прогресса
$Form1 = GUICreate("", 600, 500, -1, -1)

$iTop = 10
$iLeft = 20


For $i = 1 To $aProgs[0]
    $aCheckedIcons[$i] = -5
    $aUnCheckedIcons[$i] = -4

    $anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace($aProgs[$i], '^.*=', ''), $iLeft, $iTop, -1, 15, "shell32.dll", $aUnCheckedIcons[$i])
    $iTop += 20

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

$ProgressBar1 = GUICtrlCreateProgress(150, 150, 150, 20)
GUICtrlSetColor(-1, 32250)

$nStart = GUICtrlCreateButton("Выполнить", 10, 470, 80, 25)
$nButton1 = GUICtrlCreateButton("Отметить все", 100, 470, 80, 25)
$nButton2 = GUICtrlCreateButton("Отметить все", 190, 470, 80, 25)

GUIStartGroup()



GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
   	Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButton1
			For $i = 1 to $aProgs[0] 
            $aArray=$anCheckBoxes[$i] 
      GUICtrlSetState ($aArray[1],$GUI_CHECKED) 
  Next 
  Case $nButton2
			For $i = 1 to $aProgs[0] 
            $aArray=$anCheckBoxes[$i] 
      GUICtrlSetState ($aArray[1],$GUI_UNCHECKED)
	  Next
		Case $nStart
			For $i = 1 To $aProgs[0]
            $iProgress += $iProgress_Step
			$aCheckBox = $anCheckBoxes[$i]
                If GUICtrlRead($aCheckBox[1]) = 1 Then
					$iChecked_Counter += 1
					GUICtrlSetImage($aCheckBox[0], "shell32.dll", $aCheckedIcons[$i])
                    GuiCtrlSetData($progressbar1, $iProgr)
                    $sProgName = StringRegExpReplace($aProgs[$i], '^.*=', '')
                    $sProgExe = StringRegExpReplace($aProgs[$i], '=.*$', '')
                    Call ("_MonitorOFF")
                    MsgBox(64, $sProgName, "sss", 3)
					Else
                    GUICtrlSetImage($aCheckBox[0], "shell32.dll", $aUnCheckedIcons[$i])
                EndIf
            GUICtrlSetData($ProgressBar1, $iProgress)
			Next
		$iChecked_Counter = 0
		EndSwitch
WEnd

Func _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile="", $nIconIndex=0)
    Local $aRetArr[2]

    $aRetArr[0] = GUICtrlCreateIcon($sIconFile, $nIconIndex, $iLeft + 17, $iTop, 16, 16)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

    $aRetArr[1] = GUICtrlCreateCheckbox("       " & $sText & " ", $iLeft, $iTop, $iWidth, $iHeight, $WS_CLIPSIBLINGS)

    Return $aRetArr
EndFunc

Отправлено: 14:49, 23-04-2010 | #9