Цитата ZeroCrash:
beve, разобрал твой пример....многовато кода получается если добавлять эти функции к каждой кнопке. Может просто я неясно выразился или просто по-другому никак, но мне нужно чтобы при нажатии любой кнопки блокировались все кнопки на 3с. Сейчас разберу скрипт proxy и сравню »
|
пооооооооооооооооооо любому, придется прописывать ВСЕ кнопки, которые необходимо заблокировать.
Либо сразу напрямую:
Код:

ControlDisable($mainwindow,"",$Okbutton)
или
Код:

GUICtrlSetState($okbutton, $GUI_DISABLE)
Либо состовлять списки указателей на кнопки, кторые необходимо заблокировать. Пример:
Код:

#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
Opt('GUIOnEventMode', 1)
Global $mainwindow, $okbutton1, $okbutton2, $sButtonList
$mainwindow = GUICreate('Программа2', 460, 340)
GUISetOnEvent($GUI_EVENT_CLOSE, 'CLOSEClicked')
$okbutton1 = GUICtrlCreateButton('Кнопка', 5, 30, 90)
GUICtrlSetOnEvent(-1, 'OKButton')
$okbutton2 = GUICtrlCreateButton('Кнопка', 5, 30+30, 90)
GUICtrlSetOnEvent(-1, 'OKButton')
$sButtonList = $okbutton1 & '|' & $okbutton2
GUISetState()
While 1
Sleep(100)
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func OKButton()
If Random() < 0.5 Then
Run(@ComSpec & ' /c Start 1.bat')
Sleep(3000)
Else
Run(@ComSpec & ' /c Start 2.bat')
Sleep(3000)
Endif
AdlibEnable('_EnableButton', 3000)
_ButtonSetState(0)
EndFunc
Func _EnableButton()
_ButtonSetState(1)
AdlibDisable()
EndFunc
Func _ButtonSetState($fState)
Local $aListButton = StringSplit($sButtonList, '|')
If @error Then Return
Local $fUnState, $i
If $fState Then
$fState = $GUI_ENABLE
$fUnState = $GUI_DISABLE
Else
$fState = $GUI_DISABLE
$fUnState = $GUI_ENABLE
EndIf
For $i=1 To $aListButton[0]
If BitAND(GUICtrlGetState($aListButton[$i]), $fUnState) Then GUICtrlSetState($aListButton[$i], $fState)
Next
EndFunc
Да, думаю, не плохо сначала проверять состояние кнопки, Enable или Disable, что бы лишний раз не "моргать" кнопкой:
Код:

If BitAND(GUICtrlGetState($okbutton), $GUI_ENABLE) Then GUICtrlSetState($okbutton, $GUI_DISABLE)