⌨️
AutoHotkeyで非アクティブなウィンドウのアプリを操作する
はじめに
Kindle を読みながらエディターでメモを取るなど、複数のアプリを同時に使うことが多くあります。
その度にウィンドウを切り替えて操作するのは面倒ですね。
AutoHotkey を使えばウィンドウの切り替えなしで非アクティブなアプリを操作できます。
確認したバージョン
- Windows 11 23H2
- AutoHotkey v2.0.19
AutoHotkey の設定
以下は Alt + ]
, Alt + [
に Kindle のページ送りを設定する例です。
#Requires AutoHotkey v2.0
#SingleInstance force ; スクリプトの複数インスタンスを防止
SetWinDelay(0) ; ウィンドウ操作のディレイを0に設定
SetTitleMatchMode("RegEx") ; ウィンドウタイトルのマッチングに正規表現を使用
; Kindle ページめくり
!]::
{
hWnd := WinExist(".*Kindle for PC.*")
if (hWnd) {
ControlSend("{Right}", hWnd)
}
}
![::
{
hWnd := WinExist(".*Kindle for PC.*")
if (hWnd) {
ControlSend("{Left}", hWnd)
}
}
解説
-
!]::
はホットキーの設定で、!
は Alt キーを表します- ちなみに
!] up::
と書くと、キーを離したときの動作を設定できます
- ちなみに
-
WinExist でウィンドウの存在を判定します
- Window Spy を使うことでアクティブなウィンドウの情報を確認できます
- ControlSend で特定のウィンドウにキー入力を送信します
ハマったところ
WinExist
で 最初 ahk_exe Kindle.exe
で判定していたのですが、裏で以下のような同じ exe の別ウィンドウもあり、そちらを操作することがありました。
ウィンドウタイトルで判定することで安定しました。
応用:マウスボタンに割り当てる
ゲーミングマウスなどの多ボタンマウスにはショートカットキーを設定できるものがあります。
これでマウスボタンでも操作できます。
マウス操作を多用しているアプリを使っているときに設定すると便利です。
おわりに
この記事では Kindle を例に説明しましたが、他アプリで設定すればいろいろ活用できそうです。
Discussion