|
Компьютерный форум 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 | Цитировать #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 #ce ---------------------------------------------------------------------------- #include <GUIConstantsEx.au3> Opt("TrayIconDebug", 1) Opt("TrayIconHide", 0) Opt("GUICloseOnESC", 1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Beep(1000, 150) GUICreate("TEST", 440, 440) $nInst = GUICtrlCreateButton ("Run", 7, 410, 80, 22) $Close = GUICtrlCreateButton ("Exit", 350, 410, 80, 22) $icon = GUICtrlCreateIcon ("@ScriptDir & '\name.exe",0, 29,375,32,32) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Disable", 7, 15, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) $id1 = GUICtrlCreateCheckbox ("CHECKBOX 1", 12, 40, -1, -1) $id2 = GUICtrlCreateCheckbox ("CHECKBOX 2", 12, 60, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Restore", 7, 200, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) $id11 = GUICtrlCreateCheckbox ("CHECKBOX 1.1", 12, 230, -1, -1) $id12 = GUICtrlCreateCheckbox ("CHECKBOX 2.2", 12, 250, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUISetState() While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $Close, $GUI_EVENT_CLOSE Exit Case $nInst GUISetState(@SW_MINIMIZE);@SW_MINIMIZE ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Отключить и остановить^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id1) Then MsgBox(4096+48, '', 'CHECKBOX 1', 1) Endif If _Checked($id2) Then MsgBox(4096+48, '', 'CHECKBOX 2', 1) Endif ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^По умолчанию^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id11) Then MsgBox(4096+48, '', 'CHECKBOX 1.1', 1) Endif If _Checked($id12) Then MsgBox(4096+48, '', 'CHECKBOX 2.2', 1) Endif GUISetState(@SW_RESTORE) Case $id1, $id11, $id2, $id12 $iNext = $iMsg + 1 If $iMsg = $id2 Or $iMsg = $id12 Then $iNext = $iMsg - 1 EndIf GUICtrlSetState($iNext, $GUI_UNCHECKED) If Not _Checked($iMsg) Then GUICtrlSetState($iMsg, $GUI_CHECKED) EndSwitch WEnd ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Func _Checked($idControlID) Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_Checked |
------- Отправлено: 13:07, 07-04-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R, в вашем варианте рекурсия происходит в каждой из групп, а нужно чтобы рекурсивно происходило в обеих группах.
Изначально галочки отсутствуют. Установили на CHECKBOX 1 имеет связь с CHECKBOX 1.1 Установили на CHECKBOX 1.1 с CHECKBOX 1 снимается Установили на CHECKBOX 2 имеет связь с CHECKBOX 2.2 Установили на CHECKBOX 2.2 с CHECKBOX 2 снимается CHECKBOX 1 >> CHECKBOX 1.1 CHECKBOX 1 << CHECKBOX 1.1 CHECKBOX 2 >> CHECKBOX 2.2 CHECKBOX 2 << CHECKBOX 2.2 Есть ли идеи ? |
Отправлено: 08:13, 08-04-2016 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата nibble74:
1 привязан к 1.1, а 2 к 2.2. Может так: #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 #ce ---------------------------------------------------------------------------- #include <GUIConstantsEx.au3> Opt("TrayIconDebug", 1) Opt("TrayIconHide", 0) Opt("GUICloseOnESC", 1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Beep(1000, 150) GUICreate("TEST", 440, 440) $nInst = GUICtrlCreateButton ("Run", 7, 410, 80, 22) $Close = GUICtrlCreateButton ("Exit", 350, 410, 80, 22) $icon = GUICtrlCreateIcon ("@ScriptDir & '\name.exe",0, 29,375,32,32) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Disable", 7, 15, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) $id1 = GUICtrlCreateCheckbox ("CHECKBOX 1", 12, 40, -1, -1) $id11 = GUICtrlCreateCheckbox ("CHECKBOX 1.1", 12, 230, -1, -1) $id2 = GUICtrlCreateCheckbox ("CHECKBOX 2", 12, 60, -1, -1) $id12 = GUICtrlCreateCheckbox ("CHECKBOX 2.2", 12, 250, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Restore", 7, 200, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUISetState() While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $Close, $GUI_EVENT_CLOSE Exit Case $nInst GUISetState(@SW_MINIMIZE);@SW_MINIMIZE ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Отключить и остановить^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id1) Then MsgBox(4096+48, '', 'CHECKBOX 1', 1) Endif If _Checked($id2) Then MsgBox(4096+48, '', 'CHECKBOX 2', 1) Endif ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^По умолчанию^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id11) Then MsgBox(4096+48, '', 'CHECKBOX 1.1', 1) Endif If _Checked($id12) Then MsgBox(4096+48, '', 'CHECKBOX 2.2', 1) Endif GUISetState(@SW_RESTORE) Case $id1, $id11, $id2, $id12 $iNext = $iMsg + 1 If $iMsg = $id11 Or $iMsg = $id12 Then $iNext = $iMsg - 1 EndIf GUICtrlSetState($iNext, $GUI_UNCHECKED) If Not _Checked($iMsg) Then GUICtrlSetState($iMsg, $GUI_CHECKED) EndSwitch WEnd ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Func _Checked($idControlID) Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_Checked #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 #ce ---------------------------------------------------------------------------- #include <GUIConstantsEx.au3> Opt("TrayIconDebug", 1) Opt("TrayIconHide", 0) Opt("GUICloseOnESC", 1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Beep(1000, 150) GUICreate("TEST", 440, 440) $nInst = GUICtrlCreateButton ("Run", 7, 410, 80, 22) $Close = GUICtrlCreateButton ("Exit", 350, 410, 80, 22) $icon = GUICtrlCreateIcon ("@ScriptDir & '\name.exe",0, 29,375,32,32) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Disable", 7, 15, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) $id1 = GUICtrlCreateRadio ("CHECKBOX 1", 12, 40, -1, -1) $id11 = GUICtrlCreateRadio ("CHECKBOX 1.1", 12, 230, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUICtrlCreateGroup("Restore", 7, 200, 426, 170) GUICtrlSetFont(-1, -1, 700) DllCall('UxTheme.dll', 'int', 'SetWindowTheme', 'hwnd', GUICtrlGetHandle(-1), 'wstr', 0, 'wstr', 0) GUICtrlSetColor(-1, 0x0000FF) $id2 = GUICtrlCreateRadio ("CHECKBOX 2", 12, 60, -1, -1) $id12 = GUICtrlCreateRadio ("CHECKBOX 2.2", 12, 250, -1, -1) ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GUISetState() While 1 $iMsg = GUIGetMsg() Switch $iMsg Case $Close, $GUI_EVENT_CLOSE Exit Case $nInst GUISetState(@SW_MINIMIZE);@SW_MINIMIZE ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Отключить и остановить^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id1) Then MsgBox(4096+48, '', 'CHECKBOX 1', 1) Endif If _Checked($id2) Then MsgBox(4096+48, '', 'CHECKBOX 2', 1) Endif ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^По умолчанию^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If _Checked($id11) Then MsgBox(4096+48, '', 'CHECKBOX 1.1', 1) Endif If _Checked($id12) Then MsgBox(4096+48, '', 'CHECKBOX 2.2', 1) Endif GUISetState(@SW_RESTORE) EndSwitch WEnd ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Func _Checked($idControlID) Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_Checked |
|
------- Отправлено: 12:20, 08-04-2016 | #4 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R,
С чекбоксами лучше, там есть возможность добавить ещё пункты CHECKBOX 3 - 4 - 5 >> CHECKBOX 13 - 14 - 15 (цифры поменял для удобства) и т.д, а вот как добавить в Radio не разобрался. Возможно ли и в Radio добавлять пункты ??? Вот с добавлением для CHECKBOX |
|
Отправлено: 17:43, 08-04-2016 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать ... GUIStartGroup() $id1 = GUICtrlCreateRadio ("CHECKBOX 1", 12, 40, -1, -1) $id11 = GUICtrlCreateRadio ("CHECKBOX 11", 12, 230, -1, -1) GUIStartGroup() $id2 = GUICtrlCreateRadio ("CHECKBOX 2", 12, 60, -1, -1) $id12 = GUICtrlCreateRadio ("CHECKBOX 12", 12, 250, -1, -1) GUIStartGroup() $id3 = GUICtrlCreateRadio ("CHECKBOX 3", 12, 80, -1, -1) $id13 = GUICtrlCreateRadio ("CHECKBOX 13", 12, 270, -1, -1) GUIStartGroup() $id4 = GUICtrlCreateRadio ("CHECKBOX 4", 12, 100, -1, -1) $id14 = GUICtrlCreateRadio ("CHECKBOX 14", 12, 290, -1, -1) ... |
------- Отправлено: 21:07, 12-04-2016 | #6 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R,
Премного благодарен ! |
Отправлено: 22:18, 12-04-2016 | #7 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R,
Не разобрался с активностью и не активностью Checkbox в это скрипте хотел сделать так чтобы при установке галочки на "ID 7" со всех "ID 1...ID 6" галочки снимались и сами "ID 1...ID 6" становились неактивные, а при снятии галочки с "ID 7" всё становилось снова активным. Помогите пожалуйста |
Отправлено: 20:18, 14-04-2016 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 00:21, 17-04-2016 | #9 |
Старожил Сообщения: 251
|
Профиль | Отправить PM | Цитировать Creat0R,
Тут вот набрал часть скрипта в самом скрипте закомментировано что не получается сделать после "Else". Может есть вариант это реализовать ? |
Последний раз редактировалось nibble74, 01-05-2016 в 20:54. Отправлено: 18:20, 01-05-2016 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Автоматическое переключение языков ввода. | 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 |
|