[AHK] ホットキーでウィンドウのアクティブ化とアプリ起動を行うスクリプト

2016年04月21日

2000年に開発した拙作の検索支援ツール「かんざし」(スタンドアロン版)には、ホットキーでウィンドウをアクティブ化できる機能があるのですが、遅ればせながら、最近その機能をAHK(AutoHotkey)スクリプトに移植し、ついでにランチャー機能も追加してみました。

移植といっても、AHKでは至極簡単に実現できる基本的な機能ですので、わざわざご紹介するほどのものでもないのですが、いちおうサンプルスクリプトを載っけておきます。

機能

スタンドアロン版かんざしには、「任意のアプリをアクティブ化」という機能があります。設定画面の中で、ホットキーとウィンドウタイトルを指定しておくと、Alt+Tabで切り替えるより素早く、目的のウィンドウを一発でアクティブにできるというものです。

160421_hotkey.png

今にして思えば、「任意のアプリをアクティブ化」という表現は、ちょっとアレだった気もしますが…。

今回のスクリプトは、この機能をAHKに移し替えたものです。さらに、目的のウィンドウが開いていない場合は自動で起動するというランチャー機能も追加しました。

サンプルスクリプト

以下のスクリプトをコピーし、色が付いている部分を適宜修正してお試しください。

SetTitleMatchMode, 2    ; 「2」=部分一致、「RegEx」=正規表現

WinActivateRun(winTitle, exeFullPath := "")
{
    if (WinExist(winTitle)) {
        WinActivate
    } else if (exeFullPath) {
        SoundPlay, *-1
        Run, %exeFullPath%
    }
    return
}

;================================================================
^+w::WinActivateRun("Microsoft Word")
^+h::WinActivateRun("秀丸", "C:\Program Files\Hidemaru\Hidemaru.exe")
;================================================================

修正方法

ホットキーとウィンドウの組み合わせは、コード末尾の ======== で挟まれた部分で指定します。
上の例はホットキーが2つのみですが、もっと増やしたい場合は、行をコピペして追加してください。

色付きの部分に指定する内容は次のとおりです。

  • 青色の部分:ホットキー(指定方法はAHKのヘルプを参照)
  • 赤色の部分:アクティブ化するウィンドウのタイトル(一部でOK)
  • 緑色の部分:ウィンドウが開いていない場合に起動するEXEファイルのフルパス(省略可)

EXEのフルパス(緑色の部分)は省略しても構いません。その場合、ウィンドウが開いていなければ何もしません。
上の例では、Microsoft Word の行は、EXEの指定を省略しています。

ちなみに、Windowsの「エクスプローラ」を指定したい場合は、次のような感じで記述してみてください。

^+e::WinActivateRun("ahk_class CabinetWClass", "C:\Windows\explorer.exe")

補足

  • ウィンドウのタイトルは、「WinTitle」の形式で指定できます。ahk_classahk_exe 等を使っても大丈夫です。
  • 冒頭にある「SetTitleMatchMode, 2」という行の「2」を「RegEx」に変えると、ウィンドウのタイトルやクラスを正規表現で指定できます。
  • EXEを起動するときに音を出したくない場合は、「SoundPlay, *-1」という1行を消してください。

余談

なぜ今さらこんなスクリプトを作ったかというと、最近Windows 7からWindows 10にアップグレードしたことがきっかけです。

実は、Win7時代は、ホットキーを使ったウィンドウの切り替えは、かんざしでもAHKでもなく、「窓替え」というフリーソフトを使っていました。

Win10への移行後に試したところ、窓替えはいちおう動くようなのですが、これを機に、小回りが利く自作のスクリプトに切り替えようと思った次第です。

※ちなみに、Windows 7以降では、「Winキー+数字キー」というホットキーを使って、タスクバーに固定したプログラムの起動やアクティブ化を行える機能が、Windows自体に備わっています。AHKやフリーソフトではなくWindows自体の機能を使いたいという方は、そちらをお試しください。

posted by 内山卓則 at 20:45 | スクリプト・プログラム