1 (изменено: Sakura, 2021-03-02 21:30:45)

Тема: Ahk+Gui

Всем здравствуйте. Написал не сложный скрипт, при запуске скрипта открывается меню где можно указать горячую клавишу и поставить галку на активацию клавиши.
Суть проблемы- Когда выбираю клавишу и ставлю галку в CheckBox оно работает но когда снимаю галку или ставлю другую клавишу ничего не меняется.
В Общем что-то напортачил с кодом.
Справки читал но не получилось.

Gui, Add, CheckBox, x12 y19 w110 h20 gPzz1, Включить
Gui, Add, Hotkey, x12 y49 w110 h20 vMyHotKey1, 
Gui, Add, Text, x132 y49 w100 h20, Одеть
Gui, Font, S8 CDefault, Verdana
; Generated using SmartGUI Creator for SciTE
Gui, Show, w254 h278, Untitled GUI
return
GuiClose:
ExitApp

Pzz1:
Gui, Submit, NoHide  
Hotkey, %MyHotKey1%, key1, On, useerrorlevel  
return

key1:
SendInput, {i} 

2 (изменено: qqlexa, 2021-03-03 14:43:34)

Re: Ahk+Gui

Я бы добавил проверку при выполнении скрипта по метке key1, если чекбокс неактивен тогда удалим хоткей:

key1:
if (CheckValue){
	SendInput, {i} 
}
else{
	Hotkey, %A_ThisHotKey%, key1, Off
}

Ну и для удобности хорошо бы добавить переход на Pzz1 при смене хоткея, и для считывания состояния чекбокса добавить переменную его состояния:


Gui, Add, CheckBox, x12 y19 w110 h20 vCheckValue gPzz1, Включить
Gui, Add, Hotkey, x12 y49 w110 h20 vMyHotKey gPzz1, 

В обработке Pzz1 будет хорошо так же проверять состояние чекбокса. С поправками без сильных изменений код выглядит примерно так:

Gui, Add, CheckBox, x12 y19 w110 h20 vCheckValue gPzz1, Включить
Gui, Add, Hotkey, x12 y49 w110 h20 vMyHotKey gPzz1, 
Gui, Add, Text, x132 y49 w100 h20, Одеть
Gui, Font, S8 CDefault, Verdana
; Generated using SmartGUI Creator for SciTE
Gui, Show, w254 h278, Untitled GUI
return

GuiClose:
ExitApp

Pzz1:
Gui, Submit, NoHide  
if (CheckValue){
	Hotkey, %MyHotKey%, key1, On, useerrorlevel  
}
return

key1:
if (CheckValue){
	SendInput, {i} 
}
else{
	Hotkey, %A_ThisHotKey%, key1, Off
}

3

Re: Ahk+Gui

qqlexa Спасибо.