オートホットキー
AutoHotkey は、Microsoft Windows 用のフリーでオープンソースのスクリプト言語です。キーボードショートカットやホットキーの作成、高速マクロの作成、ソフトウェアの自動化などが可能です。これにより、ユーザーはあらゆるWindowsアプリケーションの反復タスクを自動化することができます。ユーザーインターフェースは、AutoHotkeyによって拡張または変更することができます。例えば、WindowsのコントロールキーコマンドをEmacsの同等品に置き換えることができます。AutoHotkeyのインストールには、ヘルプファイルが含まれています。ドキュメントはインターネット上で入手可能です。
特徴
AutoHotkeyスクリプトは、プログラムのロード、ドキュメントのオープン、キーストロークやマウスクリックの発行に使用することができます。
AutoHotkeyスクリプトは、変数の変更、ウィンドウ、ファイル、フォルダの操作も可能です。
AutoHotkeyスクリプトは、ホットキーで起動することができます。ユーザーがキーボードのCtrl+Alt+Iのようなキーの組み合わせを押すと、スクリプトがウェブブラウザを開くことができるのです。
キーボードのキーはリマップされ、Ctrl+Nを押すとアクティブウィンドウにエンダッシュ(-)が表示されるようにすることができます。同じキーを無効にして、Ctrl+Nを押しても何も起こらないようにすることもできます。
AutoHotkeyでは、入力された特定のテキストを自動的に置換する「ホットストリング」も利用できます。ホットストリングの典型的な使い方は、略語の拡張です。btw」と入力すると、「by the way」というテキストが生成されるようにすることができます。
スクリプトは、コンピュータの起動時に自動的に開始することができます。これらはバックグラウンドで実行され、ログファイルに情報を書き込むために使用される可能性があります。
より複雑なタスクとしては、カスタムデータ入力フォーム(GUIウィンドウ)の作成、システムレジストリの操作、DLLから関数を呼び出してWindows APIを使用することなどがあります。スクリプトは、AutoHotkeyがインストールされていない他のコンピュータで実行可能な実行ファイルにコンパイルすることができます。
ソースコードはC++で、Visual Studio Expressでコンパイルすることができます。
ポインタによるメモリアクセスは、C言語と同様に可能です。
AutoHotkeyの使い方をいくつか紹介します。
- QWERTYキーボードからDvorakキーボードやその他の代替キーボードレイアウトへのリマッピング。
- よく使うファイル名などをショートカットで記入する。
- カーブクオート("...")など、キーボードにない句読点を入力すること。
- キーボードやジョイスティックでマウスカーソルを操作すること。
- 簡単なキー操作で、プログラム、ドキュメント、ウェブサイトを開くことができます。
- 電子メールや掲示板に署名を入れる。
- システムを監視し、不要なプログラムを自動的に終了させる。
- 自動リマインダー、システムスキャン、バックアップのスケジューリング。
- 繰り返しの作業を自動化する。
- コンテストや景品のフォームに自動的に入力する(名前、住所などを自動的に入力することができる)。
- より時間のかかる別のプログラミング言語で実装する前に、プロトタイプを作成する。
歴史
AutoHotkeyの最初のパブリックベータ版は、2003年11月10日にリリースされました。これはAutoIt v2の構文に基づいており、一部のAutoIt v3コマンドとAutoIt v3コンパイラが使用されています。AutoIt v3は、「他のプロジェクトが繰り返しAutoItのコードを取得し」、「自分たちを競争相手として設定する」ため、ライセンスをGPLからクローズドソースに変更しました。
2010年、AutoHotkey v1.1(当初の名称はAutoHotkey_L)は、AutoHotkeyの継続的な開発のためのプラットフォームとなりました。2012年末には公式ブランチとなりました。
例
次のスクリプトは、ユーザーがGoogleを使って特定の単語やフレーズを検索できるようにするものです。アプリケーションからクリップボードにテキストをコピーした後、設定可能なホットキーȮWin+Gを押すと、ユーザーのデフォルトのWebブラウザが開き、検索が実行されます。
次のスクリプトは、ユーザーが任意のプログラムで「afaik」と入力すると、自動的に「as far as I know」に置き換えることができるホットストリングを定義しています。
以下の例では、Ctrl+⇧ Shift+Q でエディターで選択されたテキストを引用したものに置き換えます。これは関数、引数、デフォルトの引数値の使い方を示しています。
ユーザー提供の機能
他のプログラミング言語で使用するための拡張機能/インターオプ/インラインスクリプトライブラリが用意されています。
- VB/C# (.NET)
- ルア
- エルエスピー
- エミッタ結合素子
- VBScript/JScript (Windows Scripting Host)
- 組込用マシンコード
その他の主要なプラグインでは、サポートが可能です。
- アスペクト指向プログラミング
- 機能フック
- コムラッパー
- コンソールとの連動
- 動的なコード生成
- HID
- Internet Explorerの自動化
- GUI作成
- ウェブサービス
- シンセティック・プログラミング
- Windowsイベントフック