AutoHotKeyから送られた上下キー(Up Downキー)がOneNote上で効かない時の対処

経緯

OneNoteはメモ・ノートアプリとしてとても便利なのですが、キーボードショートカットのキーバインド設定ができないのでAutoHotKeyを多用しています。
そこで困ったのが、AutoHotKeyの「Send」コマンドで送られた上下キーを認識してくれないこと。
左右キー等の他のキーは普通に効くのに、上下キーだけ効きません。不思議です。
色々と調べてみたところ、

  • 「Send」コマンドではなく、「SendPlay」コマンドだと効くようになる
  • ただしWindows Vista以上の場合「SendPlay」コマンドを利用するには、UAC(ユーザアカウント制御)を無効化しなければならない
  • UAC無効化が嫌な場合は、UACを回避するためAutoHotkey.exeに署名するスクリプト(EnableUIAccess.ahk)がこちらで公開されているので、それをAutoHotKey.exeに実行する。

という情報がありました。 UACの無効化は嫌だったので、EnableUIAccess.ahk を利用しようとしましたが、現在ファイルがダウンロードできなくなっているようでした。(2017/04/28 時点で)
「SendInput」コマンドを使うと上下キーが効くようになったという情報もあったのですが、自分の環境(Widows10 64bit + OneNote2016 64bit)ではダメでした。

対処

色々と試してみたところ、dllcall でWin32APIの「keybd_event」関数を呼ぶと、とりあえずうまく動作しました。
ここにAutoHotKeyスクリプトをメモしておきます。
Ctrl + K キーで Up
Ctrl + J キーで Down
Ctrl + H キーで Left
Ctrl + L キーで Right
という風に移動する例です。