Конфликт между Autohotkey и StrokesPlus

Я использую StrokesPlus (жесты мыши, использующие SendKeys) со следующим ярлыком для закрытия окон:

acSendKeys("{DELAY=50}^{F_4}")

Окна по умолчанию закрываются с помощью control+w, но не все программы принимают это (UltraEdit, например, использует control+F4 — с control+w для переключения переноса слов, что я часто использую).

Я также использую Florian Winkelbauer 4 Clip, который привязывает F1-F4 к буферу обмена, поэтому F1+c, F1+ v etc для копирования/вставки в первый буфер обмена. Пример креплений от 4clip ниже.

*F1::SendInput {blind}{F1}
*F2::SendInput {blind}{F2}
*F3::SendInput {blind}{F3}
*F4::SendInput {blind}{F4}

; F3 + F$
F3 & F4::
    Gosub SetDelimiter
return

; F4
F4 & c::CopyClipboard(4)
F4 & a::AppendClipboard(4)
F4 & s::SwapClipboard(4)
F4 & p::PrintClipboard(4)
F4 & v::PasteClipboard(c4)
F4 & b::PasteClipboard(cp4)
F4 & d::Clear(4)

Проблема, которую я обнаружил, заключается в том, что когда я использую ярлык StrokesPlus, окно закрывается, но затем система остается, как если бы клавиша управления все еще была нажата: я могу нажать выход, и появляется меню «Пуск» (так же, как это происходит, когда вы нажимаете Ctrl + побег).

Я воспроизвел это как на 64-разрядной версии Windows 7, так и на 64-разрядной версии Windows XP.

Я подтвердил, что если я закомментирую все привязки F4 в 4 клипах, проблема исчезнет.

Я также разместил это на форуме StrokesPlus и форум Autohotkey.


person Robert Mark Bram    schedule 13.08.2012    source источник


Ответы (2)


Решил Роб (автор StrokesPlus) в его ответ на мой пост на форуме StrokesPlus.

acSendControlDown()
acSendKeys("{F_4}")
acSendControlUp()

Используйте приведенное выше в StrokesPlus вместо значения по умолчанию:

acSendKeys("{DELAY=50}^{F_4}")

person Robert Mark Bram    schedule 13.08.2012

Это связано с тем, что клавиша Ctrl по умолчанию занята как «клавиша игнорирования» в StrokesPlus, что означает, что при нажатии клавиши Ctrl все жесты мыши временно отключаются.

Если вы не используете эту функцию, вы можете перейти в «Настройки» и установить «Ключ игнорирования» на «Нет». Затем вы можете записать Ctrl ключей в скрипты, как обычно.

person JC Ju    schedule 01.02.2020