1

Тема: AHK: Кликанье клавиши на определено нажатую клавишу.

Здравствуйте у меня проблема, при включении GUI сразу же работает этот скрипт(прикрепил ниже).
Можна ли как нибудь сделать так чтоб при запуске GUI он не работал сразу же, а только тогда когда до него доходит очередь, пример когда нажимается копка в GUI.


Gui Add, Button, x118 y80 w100 h36 gProv, Робот

Gui Show, w344 h196, Window
Return

Prov:

F:: 
	Sleep 100 
	Loop 
		{ 
		GetKeyState, fState, f, P 
		If fState = U 
		break 
		Sleep 0 
		Send, {f} 
		}
y:: 
	Sleep 100 
	Loop 
		{ 
		GetKeyState, yState, y, P 
		If yState = U 
		break 
		Sleep 0
		Send, {y}
		}

2

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

Понять бы ещё в чём проблема.
Что значит:

при запуске GUI он не работал сразу же

Как настроите скрипт - так он и будет работать.
О какой очереди идёт речь?

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: dimkacum, 2021-05-26 00:27:27)

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

__Михаил__
Я запускаю GUI, при нажатии на клавишу F(например) он сразу же работает. А он должен смотреть например включена ли галочка или нет!
Добавил еше галочку которую он должен проверять.


Gui Add, Button, x48 y21 w100 h36 gProv, Начать роботу
Gui Add, CheckBox, x207 y28 w120 h23 vskill_3, Проверить ; если галочка стоит при нажатии на кнопку работать он заработает если не стоит он не заработает

Gui Show, w344 h196, Window
Return

Prov:
Loop
{
	GuiControlGet, skill_3
		if (!skill_3) {
		break
	}
		Loop
		{
			GetKeyState, fState, f, P 
			If fState = U 
			break 
			Sleep 0 
			Send, {f} 

			GetKeyState, yState, y, P 
			If yState = U 
			break 
			Sleep 0
			Send, {y}
		}
}

4

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

А кнопку 'Начать роботу' кто будет подключать к логике скрипта?

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

__Михаил__
изменил!

6

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

__Михаил__
Сможете помочь. Сижу уже 2 дня не могу разобраться.

7

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

Опишите чего хотите получить в итоге.
Я только вижу попытку определить нажата ли клавиша и если это так нажать её, какой смысл в этом?

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

__Михаил__
Смотрите что получается когда я запускаю скрипт(GUI), при нажатии на клавишу f или y оно автоматически перекидывается на ту часть скрипта где это указано даже игнорит проверку CheckBox. А оно должно проверить стоит в CheckBox галочка или нет, если да то чтоб работало, если не стоит то просто становилось в Break и все а оно сразу работает без проверки.
Надеюсь объяснил.

9

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

В шапке темы объявлены перехваты для следующих клавиш:

F::
y::

Это означает что клавиши скрипт перехватывает всегда. Если нужно динамически их выключать то это делается иначе.
Для этого есть команда Hotkey. Через неё и нужно делать включение / выключение перехвата нужных клавиш.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

10

Re: AHK: Кликанье клавиши на определено нажатую клавишу.

Вот пример:

;Gui Add, Button, gProv x48 y21 w100 h36, Начать роботу		; Кнопка не нужна в этом примере.
Gui Add, CheckBox, gProv vskill_3 x207 y28 w120 h23, Перехват F`, Y
Gui Show, w344 h196, Window
Return

Prov:
GuiControlGet, skill_3
HotKey, F, KKey, % skill_3 ? "On" : "Off"
HotKey, Y, KKey, % skill_3 ? "On" : "Off"
Return

KKey:
ToolTip, Нажата: %A_ThisHotkey%
KeyWait, %A_ThisHotkey%, U
Sleep, 100
ToolTip
Return

Включает / Выключает перехват по CheckBox'у, отображает нажатую клавишу.

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101