ahk=gui Topic is solved

Помощь в написании скриптов
Rony
Posts: 1
Joined: 02 Mar 2021, 00:16

ahk=gui  Topic is solved

Post by Rony » 02 Mar 2021, 00:22

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

Code: Select all

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}
mcl
Posts: 356
Joined: 04 May 2018, 16:35

Re: ahk=gui

Post by mcl » 02 Mar 2021, 20:30

1. Любое действие с чекбоксом вызывает блок кода, где хоткей включается.
2. Хоткей нигде не выключается.
3. Смена хоткея не вызывает никакого кода − чтобы хоткей сменился, нужно потеребить чекбокс (см. пункт 1).
4. Старый хоткей при этом не отключится (см. пункт 2), так что все старые и новый хоткей будут работать и делать одно и то же.
5. Команда Gui, Font применяется к виджетам, создаваемым после неё. На уже созданные её действие не распространяется.

Вышло довольно громоздко, но, надеюсь, суть ясна:

Code: Select all

Gui, Font, S8 CDefault, Verdana
Gui, Add, CheckBox, x012 y19 w110 h20 gUpdateHotkeys vCBoxEnabled, Включить
Gui, Add, Hotkey  , x012 y49 w110 h20 gUpdateHotkeys vMyHotKey1
Gui, Add, Text    , x132 y49 w100 h20, Одеть
Gui, Add, Hotkey  , x012 y79 w110 h20 gUpdateHotkeys vMyHotKey2
Gui, Add, Text    , x132 y79 w100 h20, Надеть
Gui, Show, w254 h278, Untitled GUI
return
GuiClose:
ExitApp

UpdateHotkeys:
Gui, Submit, NoHide
; Отключаем старые хоткеи, если они были
If (MyPrevHotKey1 != "")
	Hotkey, %MyPrevHotKey1%, Off

If (MyPrevHotKey2 != "")
	Hotkey, %MyPrevHotKey2%, Off

; Включаем новые хоткеи, если они есть
If (MyHotKey1 != "") {
	Hotkey, %MyHotKey1%, myKey1, % (CBoxEnabled ? "On" : "Off"), useerrorlevel
	MyPrevHotKey1 := MyHotKey1
}

If (MyHotKey2 != "") {
	Hotkey, %MyHotKey2%, myKey2, % (CBoxEnabled ? "On" : "Off"), useerrorlevel
	MyPrevHotKey2 := MyHotKey2
}

Return


myKey1:
SendInput, {i}
Return

myKey2:
SendInput, {j}
Return
github://oGDIp - GDI+ wrapper for AHK v1.1
Post Reply

Return to “Помощь”