4

Я не могу заставить его работать, использую ли я

AltTab

или же

Отправить {Alt down} {tab} {Alt up}

Я могу убедиться, что другие команды работают, потому что я могу заставить свои горячие клавиши отображать MessageBox. Похоже, W8 изменил достаточно вещей, чтобы сломать хиты Alt+Tab от AHK.

Ищете обходной путь. Я пытаюсь сопоставить LCtrl+Tab с Alt+Tab (и их версиями Shift).

4 ответа4

7

Установка UIAccess = true во встроенном манифесте исполняемого файла, по-видимому, решает эту проблему. Исполняемый файл также должен находиться в надежном месте, например в папке Program Files. Для получения дополнительной информации и скрипта, который вносит необходимые изменения, найдите EnableUIAccess на форуме AutoHotkey.

Спасибо Клиффу Смолински за размещение на трекере Synergy следующего сообщения:

В Windows 8 реализован ряд изменений безопасности, которые не позволяют программам, не являющимся приложениями Metro, вводить ключи, которые удаляют вас из среды Metro. Это работает так, что сочетание клавиш игнорируется, если оно не исходит от физической клавиатуры или программы, которая имеет соответствующие разрешения. [...] Чтобы иметь необходимые разрешения, программа должна быть собрана с UIAccess

Я не смог подтвердить это из какого-либо официального источника, кроме следующего неопределенного комментария на MSDN:

Приложение специальных возможностей может использовать SendInput для ввода нажатий клавиш, соответствующих клавишам быстрого запуска приложения, которые обрабатываются оболочкой. Эта функциональность не гарантируется для других типов приложений.

5

Я обнаружил, что могу отправить Alt+Tab со следующим:

F1::SendInput,! {Tab}

Другими словами, мне пришлось изменить "Отправить" на "SendInput", чтобы заставить его работать с Windows 8.

1

Первый ответ дал мне повод следовать, и то, что работало для меня (с Vista) было:

²::SendEvent, !{Tab}

Спасибо!

1

Если вы используете AutoHotkey (Basic), кодовая база не обновлялась с сентября 2009 года. Очевидно, что любые фундаментальные изменения в Windows 8 не были учтены. AutoHotkey_L намного более актуален, последний раз был обновлен в этом месяце. Однако, глядя на журнал изменений, дальнейшая поддержка Windows 8 минимальна.

Если ваш скрипт все еще не работает даже после установки AutoHotkey_L, вы можете попробовать другие команды отправки :

  • SendRaw
  • SendInput
  • SendPlay
  • SendEvent

В противном случае вам просто нужно набраться терпения и ждать, пока разработчики поработают над добавлением поддержки Windows 8.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .