Клавиша Вверх/Вниз не работает в Onenote 2016 для Autohotkey

Я отобразил alt + i/k клавишей Up/Down с помощью Autohotkey со следующим кодом:

!i:: Send {up}
!k:: Send {down}

Эти перенаправления работают с каждым приложением, кроме Onenote 2016. Я проверил его онлайн и нашел несколько обсуждений в следующих ссылках:

https://autohotkey.com/board/topic/15307-up-and-down-hotkeys-not-working-for-onenote-2007/

https://autohotkey.com/board/topic/41454-remap-key-doesnt-work-in-ms-onenote/

Они предлагают использовать sendplay или sendraw, но это не сработало для меня. Может ли кто-нибудь помочь мне с этим?

Ответ 1

Он работает, если вы используете SendPlay и запустите AHK script с доступом к пользовательскому интерфейсу

Это ваш script с Send изменен на SendPlay:

!i::SendPlay {up}
!k::SendPlay {down}

Он эмулирует и , как вы ожидаете. Протестировано OneNote 2016 на Windows 10.

Как включить SendPlay: (который изначально ничего не делает в Windows 10)

  • Сохраните приведенные выше сопоставления в файл AHK. Я использовал файл updown.ahk только с этими двумя строками.

  • Щелкните правой кнопкой мыши вышеуказанный файл AHK и в его контекстном меню выберите Запустить с доступом к пользовательскому интерфейсу (это действительно делает трюк)

Устранение неполадок:

  • Элемент Запустить с доступом к пользовательскому интерфейсу отсутствует в контекстном меню файла AHK

    • Убедитесь, что ваш AutoHotKey установлен с помощью установщика в каталог Program Files. Документация AutoHotKey говорит, что UIA эффективен только в том случае, если файл находится в надежном месте, то есть подкаталоге Program Files.

    • В настройках установки обязательно проверьте последний элемент, как показано ниже.
      введите описание изображения здесь

    Совет:, если ваш AutoHotKey уже установлен, достаточно просто перезапустить установщик (Installer.ahk, найденный в расположении исполняемых файлов AutoHotKey) и проверить параметр. (Нет необходимости удалять и устанавливать заново.)

  • SendPlay все еще не работает?

Ответ 2

Кажется, что Autohotkey имеет проблемы с OneNote. Выполняя некоторые пробные и ошибки, я обнаружил, что выполнение:

Send {CTRL DOWN}{UP}{CTRL UP}

имитирует ключ вверх, но не полностью.

Ответ 3

Кажется, что у многих были проблемы с OneNote.

https://autohotkey.com/boards/viewtopic.php?f=5&t=25925

https://autohotkey.com/board/topic/49216-interference-between-microsoft-onenote-and-autohotkey/

Однако некоторые предположили, что , открывающий AHK перед запуском Onenote, разрешает эту проблему. У пользователей Surface Pro нет проблем с AHK, взаимодействующими с Onenote. Могу ли я спросить, какой компьютер вы используете?

Надеюсь, что это поможет!

Ответ 4

Мое решение:

if (winactive("ahk_exe onenote.exe"))
{
    vk_code = 0xA0
    dllcall("keybd_event","UChar", vk_code, "UChar", 0, "UInt", 0, "Ptr", 0 )
    vk_code = 0x26
    dllcall("keybd_event","UChar", vk_code, "UChar", 0, "UInt", 0, "Ptr", 0 )
    vk_code = 0x26
    dllcall("keybd_event","UChar", vk_code, "UChar", 0, "UInt", 0x0002, "Ptr", 0 )
    vk_code = 0xA0
    dllcall("keybd_event","UChar", vk_code, "UChar", 0, "UInt", 0x0002, "Ptr", 0 )
}
else
    send  {blind}{up}

Ответ 5

!i::ControlSend, OneNote::DocumentCanvas1, {Up}, ahk_exe ONENOTE.EXE

Нашел на форумах ахк здесь. Проверена работа на Windows 10 1803 с OneNote 2016 (настольная версия).