⌨️

AutoHotkeyで非アクティブなウィンドウのアプリを操作する

2025/02/24に公開

はじめに

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 Window

ウィンドウタイトルで判定することで安定しました。

応用:マウスボタンに割り当てる

ゲーミングマウスなどの多ボタンマウスにはショートカットキーを設定できるものがあります。

mouse

これでマウスボタンでも操作できます。
マウス操作を多用しているアプリを使っているときに設定すると便利です。

おわりに

この記事では Kindle を例に説明しましたが、他アプリで設定すればいろいろ活用できそうです。

Discussion