AutoHotkey
開発元 | Chris Mallett (Chris)、Steve Gray (Lexikos) |
---|---|
最新版 | |
リポジトリ | |
対応OS | Microsoft Windows |
種別 | スクリプト言語 自動化 GUI ユーティリティソフトウェア |
ライセンス | GPL |
公式サイト | autohotkey.com |
AutoHotkeyとは、Microsoft Windows上で動作するユーティリティソフトウェア、スクリプト言語である。
概要
[編集]AutoHotkey独自のプログラミング言語(マクロ言語)を用いてコンピュータを制御することができる。「AutoHotkey」という名称から想像できるように、当初はキーボードのホットキー(ショートカットキー)をカスタマイズすることを目的として開発されたが、ユーザーの要望を取り入れる形で開発が進むにつれスクリプト言語と分類されるほどに膨大な機能が実装され、コミュニティも大きなものとなっている。
GPLでライセンスされたオープンソースのフリーソフトウェアである。
AutoHotkey自体のソースコードはC++で書かれており、Microsoft Visual Studio Expressでコンパイルすることができる。
特徴
[編集]変数、関数、ポインタ、再帰、APIコール等一般的なプログラミング言語と同等の機能が用意されており、高度な制御が可能。
基本的な制御は次のようなものがある。
これらを組み合わせて、次のような処理を行わせることができる。
- キー配列を、QWERTY配列からDvorak配列などの配列に再割り当てする
- よく使うファイル名などの文字列をショートカットキーで入力する
- コンテストや無料サンプルの申し込みフォームに、名前や住所などを自動で記入する
- キーボードやジョイスティックでマウスカーソルを操作する
- 簡単なキー入力でプログラム、文書、ウェブサイトを開く
- 電子メールの本文やインターネットコミュニティの書き込みに署名を挿入する
- 非アクティブなウィンドウをショートカットキーで操作する
- システムを監視し、不要なプログラムを自動的に終了させる
- リマインダーソフトウェア、システムスキャン、バックアップの自動実行をスケジュールする
- オンラインゲームでの繰り返し操作を自動化する(オンラインゲームの利用規約に違反することもあるので注意)
GUIを自作しオリジナルのウィンドウを作ることも可能。
スタンドアロン実行
[編集]通常、Autohotkey言語で書かれたスクリプトを実行するには、コンピュータにAutohotkeyがインストールされている必要がある。しかし、付属のコンバートソフトウェアでスクリプトを実行ファイル化することでスクリプトをスタンドアロンで実行することができる。
スクリプト例
[編集]v2
以下のスクリプトでは、CtrlキーとAltキーが入れ替わる。
LCtrl::Alt
LAlt::Ctrl
以下のスクリプトでは、Googleで特定の語や文字列を検索することができる。任意のアプリケーションで文字列をクリップボードにコピーした後に ⊞ Win+g を押すと、指定されている既定のウェブブラウザが起動し、コピーした文字列で検索が行われる。この操作を行うキーは、スクリプトを変更すれば変更可能。
#g:: { ; Win+g
Run "https://www.google.com/search?q=" A_Clipboard
}
「afaik」と入力すると自動的に「as far as I know」に置き換わるホットストリングの作成に必要なスクリプトの例を以下に示す。
::afaik::as far as I know
AutoHotkeyの簡単な機能の例を以下に示す。あるURLがクリップボードにコピーされているときに ⎇ Alt+x を押すと、URLにかっこが含まれているかを確認し、あれば代替文字に置き換え、その後クリップボードからURLを貼り付ける。
!x:: { ; Alt+x
URLReplace()
Send "^v" ; Ctrl+v
}
URLReplace() {
A_Clipboard := StrReplace(A_Clipboard, "(", "%28")
A_Clipboard := StrReplace(A_Clipboard, ")", "%29")
}
以下のスクリプトでは、CtrlキーとAltキーが入れ替わる。
LCtrl::Alt
LAlt::Ctrl
以下のスクリプトでは、Googleで特定の語や文字列を検索することができる。任意のアプリケーションで文字列をクリップボードにコピーした後に ⊞ Win+g を押すと、指定されている既定のウェブブラウザが起動し、コピーした文字列で検索が行われる。この操作を行うキーは、スクリプトを変更すれば変更可能。
#g:: ; Win+g
Run https://www.google.com/search?q=%clipboard%
Return
「afaik」と入力すると自動的に「as far as I know」に置き換わるホットストリングの作成に必要なスクリプトの例を以下に示す。
::afaik::as far as I know
AutoHotkeyの簡単な機能の例を以下に示す。あるURLがクリップボードにコピーされているときに ⎇ Alt+x を押すと、URLにかっこが含まれているかを確認し、あれば代替文字に置き換え、その後クリップボードからURLを貼り付ける。
!x:: ; Alt+x
URLReplace()
Send ^v ; Ctrl+v
Return
URLReplace() {
StringReplace, Clipboard, Clipboard, (, `%28, All
StringReplace, Clipboard, Clipboard, ), `%29, All
}
ほかにも、AutoHotkeyを使用して行える操作の例は、AutoHotkeyのオンラインフォーラムのScriptsで探すことができる。
コミュニティ
[編集]2012年1月現在、AutoHotkeyのオンラインコミュニティには約27,300ユーザーが登録されており、約482,000の書き込みが投稿されている。[3]
AutoHotkey用のオンラインチャットルームはFreenode IRCに設置されており、2009年11月現在で平均40ユーザーが接続している。[4]
ユーザ提供機能
[編集]他のプログラミング言語から、または他のプログラミング言語と一緒に使用する以下の拡張機能、相互運用できるプログラム、埋め込みスクリプトライブラリが使用可能であるか、開発中である。
- .NET Framework – VB/C# (.NET)
- LibLua – Lua
- Lisp on win32 – LISP
- Embeddable Common Lisp – ECL
- Windows Scripting Host – VBScript/JScript
- Embedded machine code – 機械語
他にも以下がある。
- アスペクト指向プログラミング
- COM Wrappers – COM
- Dynamic Code Generation
- Human Interface Device(HID) Support – HID
- Internet Explorer Automation
- SmartGUI Creator
- Sparrow AHK Web Server
- Synthetic programming
- Windows Event Hooks
歴史
[編集]開発史
[編集]AutoHotkeyの最初のベータ版は2003年11月10日に公開された。[5]AutoHotkeyを開発する契機としては、開発者のChris Mallettが「ショートカットキー機能のサポートをAutoIt v2に組み込みたい」という提案をしたものの、AutoItのコミュニティで反応がなかったことがある。[6][7]そのためChris Mallettは、AutoIt v2の構文を土台としつつもAutoIt v3から一部のコマンドを流用し、AutoIt v3でコンパイルした、独自のプログラムをいちから作成しはじめた。[8]その後AutoIt v3は、「『AutoItのソースコードを繰り返し取得』し、『自分自身をAutoItの競合相手にしている』プロジェクトが他に存在する」という理由によりGNU General Public Licenseからプロプライエタリソフトウェアに移行した。[9]
2010年10月10日、Chris Mallettは、AutoHotkey_LをAutoHotkeyとして継続して開発していくことにしたこと、公式ウェブサイトの「Download AutoHotkey」からダウンロードできるプログラムをAutoHotkey_Lに変更することを宣言した。[10][11]
また、AutoHotkeyコミュニティ内のプログラマーたちも、以下のようなAutoHotkeyの派生版を開発し始めた。
2021年7月24日、AutoHotkey v2の最初のベータ版が公開された。[12] 2022年11月20日にはrc版が公開され、今年後半にはv2.0.0としてリリースすることが計画された。[13]
2022年12月20日、AutoHotkey v2.0.0が正式リリースされた。[14] 2023年1月22日、AutoHotkey v2が正式版とみなされ、v1は非推奨バージョンとなった。ただし、v1は今後も利用可能であり、機能改善のためのサポートは継続される[15]。
その他の事件
[編集]- 2019年4月ごろ、AutoHotkeyを組み込んだマルウェアが発見された。[16] このウィルスは正規のAutoHotkeyスクリプトエンジンを含み、感染すると攻撃者が記述したAutoHotkeyのスクリプトをダウンロード、実行し、遠隔操作されてしまう。
脚注
[編集]- ^ "Release 2.0.18"; 閲覧日: 2024年7月6日; 出版日: 2024年7月6日.
- ^ Contact Erica Sadun: Comment (2005年8月19日). “Ericasadun 2005 Life Hacker”. Lifehacker.com. 2011年12月2日閲覧。
- ^ “AutoHotkey Community Forum Page”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “Getting connected to AutoHotkey's IRC Chat”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “AutoHotkey Changelog for Years 2003-2004”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “Author Chris Mallett's post on the AutoHotkey Forums”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “An AutoIt / AutoHotkey nonfunctional comparison”. Paperlined.org. 2011年12月2日閲覧。
- ^ “Author Chris Mallett's post on the AutoHotkey Forums”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “Licensing Opinions - AutoIt Forums”. Autoitscript.com. 2011年12月2日閲覧。
- ^ “Forum post by Chris, announcing AutoHotkey_L now main platform”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “Download page showing AutoHotkey_L as ongoing platform”. Autohotkey.com. 2011年12月2日閲覧。
- ^ “AutoHotkey v2.0-beta.1 - AutoHotkey Community”. Autohotkey.com. 2022年4月21日閲覧。
- ^ “v2.0-rc.1 - AutoHotkey Community”. Autohotkey.com. 2022年11月29日閲覧。
- ^ “v2.0.0 - AutoHotkey Community”. Autohotkey.com. 2022年12月22日閲覧。
- ^ “AutoHotkey v2 Official Release Announcement - AutoHotkey Community”. 2024年1月28日閲覧。
- ^ “正規ソフト「AutoHotkey」を悪用した攻撃を確認 | トレンドマイクロ セキュリティブログ”. blog.trendmicro.co.jp. 2019年6月5日閲覧。
関連項目
[編集]- UWSC
- AutoIt
- Automator (Macintosh上で動作する操作自動化ソフトウェア)
- Vimperator
- iMacros