Edited at

Windows のスクリプト言語 AutoHotkey でどんなことができるのかを簡単に紹介する

More than 1 year has passed since last update.

AutoHotkey を使うと Windows をグンと快適にすることができます。どんなことができるかを 4 例ほど、スクリプトとともに端的に紹介します。


はじめに

AutoHotkey を知らない方向けに、簡単に動作イメージを書いておきます。

スクリプトを書いた ahk ファイルを AutoHotkey.exe に食わせると、書いた通りに動作します(常駐します)。AutoHotkey はスクリプト言語ですが、特にキーボード制御機能に長けており、キーのマッピング等は得意とするところです。

では例の紹介に移ります。


(1) 押しづらいショートカットキーに押しやすいキーを割り当てる

タブを切り替えるショートカットキー として Ctrl + (Shift +) Tab がありますが、これは押しづらいです。以下は Alt + ←/→ でも切り替えられるようにする例です。

!Left::Send {Ctrl down}{Shift down}{Tab}{Ctrl up}{Shift up}

!Right::Send {Ctrl down}{Tab}{Ctrl up}


(応用) 特定のアプリケーション内でのみ有効にしたい場合

キー割り当ては指定アプリケーション内でのみ有効にすることもできます。

以下はコマンドプロンプトにおいてのみ Ctrl + V で貼り付けを行う例です。

#IfWinActive ahk_class ConsoleWindowClass

^V::
Send !{space}
Send ep
Return
#IfWinActive

デフォルトでは「Alt + Space、E、P」と押さないと貼り付けできないわけですが、上記により使い慣れた Ctrl + V が使えます。


(2) 邪魔なキー(ScrollLockとか)をロックする

以下は ScrollLock キーと Insert キーを無効にする例です。

ScrollLock::Return

Insert::Return


(応用) 特定のアプリケーション内でのみ有効にしたい場合

以下は「デスクトップ」「Excel」「エクスプローラー」上でのみ F1 キーを無効にする例です。

#If WinActive("ahk_class Progman") || WinActive("ahk_class XLMAIN") || WinActive("ahk_class CabinetWClass")

F1::Return
#If


(3) 任意のキーにアプリケーション起動を割り当てる

よく使うアプリケーションはキー一発で起動させると便利です。

以下は Windows キー + Enter キーでメモ帳を起動する例です。メモを取りたい時にサクっと呼び出せます。

#Enter::Run, c:\windows\notepad.exe

以下は ScrollLock キーで「Firefox で Google を開く」例です。ググりたい時にサクっと呼び出せます。

ScrollLock::Run, "C:\Program Files\Mozilla Firefox\firefox.exe" "https://www.google.co.jp/"


(4) 現在日時を一発で挿入する

以下は d[[ と入力した途端に現在日付(例: 2018/05/31 )を、t[[ と入力した途端に現在時刻(例: 09:46:12) を挿入する例です。

#Hotstring *

::d[[::
FormatTime, now,, yyyy/MM/dd
SendInput %now%
return

::t[[::
FormatTime, now,, HH:mm:ss
SendInput %now%
return

このような挿入方法を AutoHotkey では ホットストリング と呼びます。一般的には Text Expansion と呼びます。

現在日付に限らず任意の文字列(たとえばよく使う構文やコマンド)を挿入できるので、極めると入力作業をめちゃくちゃ効率化できます。


(応用) 入力モードに依存せず挿入したい場合

上記の例だと全角入力中に 2018・05・31 のようになってしまい、使い勝手が悪いです。以下はこれを防止する例です。

#Hotstring *

::d[[::
FormatTime, now,, yyyy/MM/dd
Clipboard = %now%
Send,^v
return

ただし、この方法では挿入の度にクリップボードを上書きします。


おわりに

以上、簡単ですが 4 例ほど紹介してみました。AutoHotkey は強力ですので、ご興味があればぜひ使ってみてください