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 は強力ですので、ご興味があればぜひ使ってみてください