Тема: AHK: Разное поведение LControl на разных машинах
У меня прекрасно работает этот скрипт на ноутбуке:
~LControl Up::
if (A_PriorKey = "LControl" and (A_TimeSincePriorHotkey > 400 or A_PriorHotkey <> A_ThisHotkey))
{
Send {Control Down}{Shift}{Control Up}
SoundBeep, 5000, 100
}
return
Смысл такой, что переключаем язык по Ctrl (как было в DOS), но только если не была нажата еще какая то клавиша, т.е. фильтруем обычные хоткеи.
Попробовал на стационарном компе, нажатие и удержание Ctrl превращается в бесконечный повтор Ctrl Down:
A2 01D d 2.48 LControl
01 000 d 0.06 LButton
A2 01D d 0.19 LControl *new 1 - Notepad++
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.05 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
01 000 u 0.02 LButton
A2 01D d 0.02 LControl
A2 01D d 0.03 LControl
A2 01D d 0.05 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D d 0.03 LControl
A2 01D h u 0.01 LControl
11 01D i d 0.00 Control
10 02A i d 0.00 Shift
10 02A i u 0.00 Shift
11 01D i u 0.00 Control
Плохо тем, что мой скрипт не видит, например, что я между нажатием и отжатием Ctrl нажимаю кнопку мыши для перетаскивания текста. Соответственно, язык переключается когда не нужно.
Пока придумал вариант, но еще не написал код для него, возможно не будет работать. Хочу послушать советы, как лучше и правильно сделать. А потом приведу свой вариант, чтобы сравнить. Подскажите, пожалуйста!!!