1 (изменено: Lortrum, 2023-07-24 00:11:52)

Тема: AHK: Клавиши назначенные в HIDmacros не работают как модификаторы

Нужно чтобы при удерживании клавиш на второй клавиатуре клавиши на первой выполняли другое действие. На второй клавиатуре 3 клавиши, они повторяют буквы a, b и c на первой клавиатуре, поэтому я использовал HIDmacros, переназначил их на f17, f18, f19.
Я написал этот код.

w::
if ((GetKeyState("f17", "P")) and (GetKeyState("f19", "P")))
	Send {Text}абвгдеёжз
	else if (GetKeyState("f17", "P"))
		Send ^w
	else if (GetKeyState("f19", "P"))
		Send +w
else  														
	Send w
return

и он не работает. Вместо разных действий всегда выполняется 'Send w' после последнего 'else'.
Если в том же коде использовать f10 и f11 на первой клавиатуре, то выполняются разные действия.

w::
if ((GetKeyState("f10", "P")) and (GetKeyState("f11", "P")))
	Send {Text}абвгдеёжз
	else if (GetKeyState("f10", "P"))
		Send ^w
	else if (GetKeyState("f11", "P"))
		Send +w
else  														
	Send w
return

Возможно, проблема в HIDmacros, возможно в неправильной обработке нематериальных f-клавиш. Мне нужна ваша помощь чтобы разобраться.