|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Автоматическое переключение Checkbox |
|
Автоматическое переключение Checkbox
|
Старожил Сообщения: 251 |
Профиль | Отправить PM | Цитировать Возможно ли реализовать авто переключение CHECKBOX в этом скрипте и как ?
Допустим установлена галочка на CHECKBOX 1, тогда с CHECKBOX 1.1 галочка снимается если она там была. Если устанавливаем на CHECKBOX 1.1, то с CHECKBOX 1 снимается. Также CHECKBOX 2 - CHECKBOX 2.2 и так далее в случае присутствия следующих CHECKBOX ..... |
|
Отправлено: 12:39, 07-04-2016 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Много непоняток в коде, например, зачем там GUISetState(@SW_DISABLE) и проверка активности окна?
И что за AutoItConstants.au3? Я бы делал так: #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Opt("TrayIconDebug", 1) ;0 - без сведений, 1 - отладочные сведения Opt("TrayIconHide", 0) ;0 - отображать, 1 - скрыть Opt("GUICloseOnESC", 1) ;0 = При нажатии ESC не высылать сообщение $GUI_EVENT_CLOSE. ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Global $Title = "TEST" ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $hGUI = GUICreate($Title, 265, 355, -1, -1, $WS_SIZEBOX + $WS_SYSMENU + $WS_MINIMIZEBOX) $Button2 = GUICtrlCreateButton("DELETE", 70, 260, 120, 22) $Close = GUICtrlCreateButton("ESC", 70, 300, 120, 22) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $id1 = GUICtrlCreateCheckbox("ID 1", 18, 50, -1, -1) $id2 = GUICtrlCreateCheckbox("ID 2", 18, 70, -1, -1) $id3 = GUICtrlCreateCheckbox("ID 3", 18, 90, -1, -1) $id4 = GUICtrlCreateCheckbox("ID 4", 18, 110, -1, -1) $id5 = GUICtrlCreateCheckbox("ID 5", 18, 130, -1, -1) $id6 = GUICtrlCreateCheckbox("ID 6", 18, 150, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUISetState() While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $Close, $GUI_EVENT_CLOSE Exit ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Case $Button2 $Ask = MsgBox(256 + 32 + 4 + 262144, "", "TEST", 0, $hGUI) If $Ask <> 6 Then For $iID = $id1 To $id6 GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) Next ContinueLoop EndIf GUISetState(@SW_HIDE) $bChecked = False For $iID = $id1 To $id6 ; хотя бы один отмечен If _Checked($iID) Then $bChecked = True MsgBox(4096 + 64, "", GUICtrlRead($iID, 1), 1, $hGUI) GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) EndIf Next ; все пустые If Not $bChecked Then MsgBox(4096 + 64, "", "UNCHECKED", 1, $hGUI) Else MsgBox(4096 + 64, "", "END", 1, $hGUI) EndIf GUISetState(@SW_SHOW) EndSwitch WEnd ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Func _Checked($idControlID) Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_Checked |
------- Отправлено: 02:23, 02-05-2016 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата Creat0R:
Огромнейшее спасибо за помощь. P.S. Жаль, что полноценной справки к AutoIt на русском нет. |
||
Отправлено: 13:43, 02-05-2016 | #12 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R,
Что то я не понял как вставить команды, мучаюсь уже пару часов ) Допустим отметили несколько CheckBox (ID2, ID4, ID6) и нужно выполнить RunWait - у каждого CheckBox своя команда RunWait, а также у каждого CheckBox может быть несколько RunWait с проверкой архитектуры, скажем вот так |
Последний раз редактировалось nibble74, 02-05-2016 в 18:35. Отправлено: 18:24, 02-05-2016 | #13 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Немного пришлось изменить
GUISetState(@SW_HIDE) $bChecked = False For $iID = $id1 To $id6 If _Checked($id1) Then $bChecked = True MsgBox(4096 + 64, "", "ID1", 1, $hGUI) GUICtrlSetState($id1, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) EndIf If _Checked($id2) Then $bChecked = True MsgBox(4096 + 64, "", "ID2", 1, $hGUI) GUICtrlSetState($id2, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) EndIf ; ..... Next If Not $bChecked Then MsgBox(4096 + 64, "", "UNCHECKED", 1, $hGUI) Else MsgBox(4096 + 64, "", "END", 1, $hGUI) EndIf GUISetState(@SW_SHOW) |
Отправлено: 12:25, 03-05-2016 | #14 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $Close, $GUI_EVENT_CLOSE Exit ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Case $Button2 $Ask = MsgBox(256 + 32 + 4 + 262144, "", "TEST", 0, $hGUI) If $Ask <> 6 Then For $iID = $id1 To $id6 GUICtrlSetState($iID, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) Next ContinueLoop EndIf GUISetState(@SW_HIDE) $bChecked = False For $iID = $id1 To $id6 ; хотя бы один отмечен If _Checked($iID) Then $bChecked = True ExitLoop EndIf Next ; все пустые If Not $bChecked Then MsgBox(4096 + 64, "", "UNCHECKED", 1, $hGUI) Else If _Checked($id1) Then MsgBox(4096 + 64, "", "id1", 1, $hGUI) GUICtrlSetState($id1, BitOR($GUI_UNCHECKED, $GUI_ENABLE)) Switch @OSArch Case "X86" RunWait(@ScriptDir & "\...") Case "X64" RunWait(@ScriptDir & "\...") RunWait(@ScriptDir & "\...") EndSwitch EndIf ;и т.д. (If _Checked($id2) Then) MsgBox(4096 + 64, "", "END", 1, $hGUI) EndIf GUISetState(@SW_SHOW) EndSwitch WEnd |
------- Отправлено: 13:02, 03-05-2016 | #15 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:48, 16-05-2016 | #16 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата nibble74:
|
|
------- Отправлено: 12:03, 18-05-2016 | #17 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Создать новую тему ? |
|
Отправлено: 20:06, 18-05-2016 | #18 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата nibble74:
|
|
------- Отправлено: 03:08, 19-05-2016 | #19 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Автоматическое переключение языков ввода. | Zajac | Microsoft Windows 2000/XP | 7 | 08-10-2013 13:41 | |
DNS/DHCP - Автоматическое переключение между сетевыми соединениями. | BROTHERHOOD | Сетевые технологии | 11 | 09-03-2013 21:37 | |
[решено] Переключение в GUI - Checkbox | TERMINAL | AutoIt | 2 | 18-01-2013 11:00 | |
Прочее - автоматическое переключение проксей | Shurik_M | Сетевые технологии | 2 | 21-07-2010 15:21 | |
FreeBSD - автоматическое переключение почты и сайта. | mr.Brightside | Общий по FreeBSD | 10 | 27-01-2010 18:26 |
|