AutoHotkey

概要

AutoHotkeyを流行らせるページより~

AutoHotkeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジンである。
多彩なコマンドが用意されており、GUIを持ったプログラムの作成も可能。
GNU GENERAL PUBLIC LICENSE Version 2の下で配布されるフリーソフトで、C++で作られている。
公式サイト(http://www.autohotkey.com/)にて、インストーラー版とZIPアーカイブ版の2種類が配布されている。
インストーラーを実行すると、スタートメニュー、新規作成メニュー、関連付けに変更が加えられる。 
  • 自動化 - 所謂マクロ。
  • ホットキー - スクリプトを常駐、特定のキーやボタンが押されたときにひとつ、あるいは複数の機能を割り当て。
  • Hotstring - 日本語での利用には多少工夫が必要。
  • GUI - GUI を設定できる。CUIのソフトのフロントエンドなどはおてのもの。
  • リマップ - キーやボタンをリマップできる。 特定のウィンドウやウインドウ毎にリマップすることも可能。
  • 実行ファイル - 実行に必要なファイルとともに自作スクリプトを実行ファイルに変換可能。AHKがインストールされていない環境に向けても配布が可能に。

詳しい特徴と機能についての紹介は AutoHotkey Wiki でされています。

スクリプト

初心者 & ニューカマー へのアドバイス

Tutorial for Newbies より引用~

As a person who started using AHK having absolutely zero programming experience (never taken a class or read a book on computers in my life), I will give you my 2 cents on learning it.

I think exploring the forum works great if you have even a little bit of background in this area. If, like me, you have none, I would learn it in the following order (this is how I would do it if I had to do it over again). Razz My reasoning here is that for a person starting from scratch, you need to learn concepts before learning commands, and the forum is geared more towards commands.

First read the Tutorial, the Scripts page, and then the FAQ. Afterwards, I would recommend learning concepts in the following order:

  1. Hotstrings
  2. Hotkeys
  3. Mouse Clicks & Mouse HotKeys
  4. Variables
  5. Loops - especially Parsing Loops
  6. String commands - (e.g. StringMid, StringReplace)
  7. If,Else statements
  8. Expressions
  9. Arrays & Dynamic variables - (StringSplit)
  10. GoSub & Functions
  11. GUIs
  12. Windows Messages
  13. DllCall

The first 3 you will not necessarily use very often once you become proficient with the program; but they are the easiest to comprehend and implement. Everything from Variables through GUIs is what I would consider the "core" of the program that you will use repeatedly to write virtually all of your scripts with. Windows Messages and DLLCalls are the advanced techniques that are the most powerful but most complicated. The average user will probably never have the need and desire to master these two.

Of course this list is not set in stone, and you may be learning multiple items at once (for example you may want to scratch the surface of GUIs right away), but I think all of the items are important to learn about if you plan to use AHK more than a few times, and I tried to arrange them in an order that would be most logical and systematic.

When you're wondering how to accomplish a specific task in AHK, remember that most of the commands have a common naming scheme to identify what they do. For example:

Commands dealing with files start with File.
Commands dealing with windows start with Win.
Commands dealing with text start with String.

Similarly:

Commands that retrieve data from somewhere contain Get.
Commands that apply data to somewhere contain Set.

Combining the two previous structures, we have commands like:

FileGetSize - Retrieve the size of a file.
WinGetTitle - Retrieve the title of a window.
StringGetPos - Retrieve the position of a piece of text inside a larger piece (like a sentence in a paragraph).

FileSetTime - Apply a new Time Stamp to a file.
WinSetTitle - Apply a new title to a window.
SetTimer - Apply a new Timer, which is a command or group of commands that run at timed intervals.

Good Luck, and remember that nobody was born knowing any of this. It takes time.

_________________

http://autohotkey.net/~jaco0646/

~引用ここまで
Original Post by jaco0646

いずれ日本語にも翻訳され、どこかで公開される事でしょう。それまでは翻訳サービス等利用するなりして下さい。

引用しっぱなしで終わり、というのも乱暴すぎる気がするので、上記の引用文中の序列リスト(番号付きリスト)の部分についてだけ、 AutoHotkeyを流行らせるページ さんで対応しているであろうページを紹介してみます。

  1. Hotstring
  2. ホットキー
  3. Mouse Click & Mouse HotKeys
  4. 変数 , 演算・変数・関数関連
  5. 繰り返し処理 , Loop (parse a string)
  6. 文字列操作 (e.g. StringMid , StringReplace)
  7. If(式) & If/IfEqual/IfNotEqual/IfLess/IfLessOrEqual/IfGreater/IfGreaterOrEqual , Else
  8. 配列 & Dynamic variables,( StringSplit )
  9. Gosub & 関数
  10. GUI表示
  11. PostMessage / SendMessage & PostMessage/SendMessage Tutorial
  12. DllCall()

多分、最初は AutoHotkeyを流行らせるページ さんのトップページを上から順に見ていく事と思いますが、 スクリプトを自分で書くようになるにはスクリプトの概要を理解する目的で スクリプト仕様 のページを繰り返し読むことになるかと思います。

if とか for とか loop とかさっぱり分からない、って人は Wikipediaの記事*1オヌヌメサイト > その他参考等のページ などを参考にするとか、もっと直感的なツールは無いの?って人にはScratch*2 などから(あくまで制御構造の理解を目的として)始めてみるのもいいのかもしれません。

DllCall

ホットキーへの機能の割り当て以外に、GUIがあり、DllCall*3がかなり強力な事もあり(向き不向きはありますが)大抵の事は出来ると思います。

COM

COM*4を利用する事も出来ます。

FAQ

Q.文字化け?ダメ文字?

A.
  • エスケープ文字*5:#EscapeChar*6での対処
    • AutoHotkey スレッド part6より~
      Q:「~AチЯ㌔荏柿義形港餐汁秦疏蛋伝覗描冒輿倭兪啻嫣彖拜杼歔」を含む文字列がうまく扱えないよ
      A:これらの文字の2バイト目が、AHKのエスケープ文字である0x60[`]なため。
        対処としてはこれらの文字の"直後"に「`」を記述する(例:「線形`代数」)か、
        #EscapeCharでエスケープ文字を別のものに変えるべし。 
      • [`] は アポストロフィ では無く back quote(バッククォート) or backtick または グレイヴ・アクセント or アクサングラーブ

Q.コンパイルした実行ファイルがアンチウイルスソフトに怒られるんだけど?

A.
Compile_AHK II を試してみて下さい(08年12月14日現在)。"No UPX"オプションがあるので、UPXで圧縮しないでコンパイルしてみて下さい。 もしかしたら改善されるかもしれません。
関連用語:実行ファイル圧縮

参考リンク

AutoHotkey - Free Mouse and Keyboard Macro Program with Hotkeys and AutoText
公式サイト
AutoHotkeyを流行らせるページ*7
日本に於ける総本山

スクリプト

AutoHotkey Script Showcase
スクリプトサンプル。
AutoHotkey wiki - Category:Scripts - AutoHotkey , Script Listing - AutoHotkey
目当てのスクリプト(の記事)を見つけるのにForumから検索*8*9して探すのが大変なら、先ずこのページにあるリンクからあたってみましょう。 - 中には古い記事もあるので記事の日付け、内容に注意。
AutoHotkeyを流行らせるページ → My Scripts
AutoHotkeyを流行らせるページの管理人さんが作成したスクリプト、ライブラリ各種。
Tips N Tricks
various tips
[VxE]'s := guide ? ( to the ternary ) : ( operator ) .
三項演算子の HowTo
The ternary operator is like an If/Else conditional, but packaged to fit inside an expression. 
Tutorials - AutoHotkey
初心者~中級者~上級者それぞれのレベルの各種チュートリアルへのリンク
Tutorial for Newbies
初心者 & ニューカマー向けの有用なチュートリアル
AHK Libraries - AutoHotkey
ライブラリについては 関数ライブラリスクリプト - AutoHotkeyを流行らせるページ を参照されたし。
Class library
The Class library is a toolset to add OOP (Object-Oriented Programming) to AHK

Class library (OOP) - Help ThreadClass library (OOP) - Wish list / Bug reports threadIntroduction To OOP / OOP - プログラミングスレまとめ in VIP

DllCall

API Wrappers - AutoHotkey wiki
WinAPI *10にアクセス出来ます。
Windows Data Types lookup tool - Autohotkey forums
WinAPI関連:補助スクリプト
Crazy Scripting : A handy tool to lookup Win32 Constants - Autohotkey forums
WinAPI関連:補助スクリプト "W32C_R01.CSV is a listing of 11836 Constants"
Easy WinAPI - WinAPI Parser, DllCall with single hotkey - Autohotkey forums
WinAPI関連:補助スクリプト
StructParser (for C/C++ structs) - Autohotkey forums
補助スクリプト: →Known Issues - Autohotkey forums
Crazy Scripting : WinAPI Listing
WinAPI関連:補助スクリプト - リストからWinAPI関数を検索、MSDNライブラリの該当ページをブラウザで表示。
Windows API Utilities
補助スクリプト - 上記の複数の補助スクリプトを取り込む形の発展形?スクリプト
A program to look up an enumeration constant, 
data type or structure defined in the Windows API, 
and to parse a structure, which is useful for DllCall in AHK. 
win32help.ahk (Win32 API 用ラッパ作成ヘルパスクリプト)
DllCall() のラッパ、構造体操作ラッパ、加えて定数定義を作成するためのヘルパスクリプト - Requires: C++ コンパイラ、 Win32 API のヘッダ
OpenGL DllCalls - Autohotkey forums
OpenGL*11 in AHK. 関連:Zippos OpenGL - AHK 3D-Engine. - Autohotkey forums(独語)操作解説(英語)-Keys - Autohotkey forums
GDI+ standard library 1.26 by tic
GDI+ *12 :サンプル - [examples+minituts] The GDI+ Examplecodes thread

COM

COM Wrappers - AutoHotkey wiki
いくつかCOMラッパーの提供もされています。
COM Standard Library - Autohotkey forums
DOWNLOAD COM.zip or COM_L.zip (for AutoHotkey_L) or COM_U.zip (for AutoHotkeyU). 

Nov 26, 2009 1:39 am - Sean さん曰く:

COM_L/COM_U are updated to chain COM_Term as part of the destruction routines. 
I was rather reluctant to do it inside the COM Library, however,
there was no other choice and seemed safe to do, so added it.
But, when encountering a crash of AHK during the termination of a script using COM Library,
please report here.
and COM_Wrap/COM_Unwrap, with the new Object version.
関数ライブラリスクリプト#Include - AutoHotkeyを流行らせるページ
Embed an Internet Explorer control in your AHK Gui via COM - Autohotkey forums
"This is a standard library for IE/WebBrowser controls."
関連:IE and Gui Browser Com Tutorial - Autohotkey forums
Basic Webpage Controls with JavaScript / COM - Tutorial
This tutorial requires the COM Standard Library.
The purpose of this tutorial is to teach the intermediate AHK user
how to start using the COM Standard Library to control webpages. 
My goal is to provide methods for controlling webpages,
similar to how the AHK Control Commands can control Windows Applications.
This tutorial is going to be high level,
but will provide links to those who want to dig deeper into these concepts.
You don't need to have much programming experience,
but I will assume you feel comfortable writing and executing AHK scripts.
Windows Scripting for Autohotkey - official homepage
VBScript,JScriptの組み込み - "Embed VBScript or JScript directly in your Autohotkey programs." : Embedded Windows Scripting (VBScript & JScript) and COM - official thread in the Autohotkey forums
AutoHotkeyを流行らせるページ → My Scripts → ActiveX
WSH等で使われるActiveXObjectを扱えるようにする

ダメ文字問題対策

AutoHotkey駄目文字微対策版
1.0.48.03ベース(タイムスタンプ:2009年8月9日)
ファイル名関連部分(のみ)について駄目文字対策を施した(つもりの)ものです。
文字列処理(正規表現も含む)には、依然として駄目文字等の Shift JIS を扱う際の問題が含まれています。
Unicode関係参考リンク
物置 > あふすくりぷた - encutil.ahk
AutoHotkey スレッド part8 より~
「あふすくりぷた」の中にある encutil.ahk に SJIS、UTF-8、UTF-16 間の相互変換関数
Read and Write Unicode
FileAppend Unicode text
Reading € from a file
AutoHotkey_L (Lexikos' custom build)
Revision 25 - March 30, 2009 - Support for Send {U+xxxx}. Character codes can be looked up using Windows' Character Map.
Easy Unicode functions
I "discovered" a really easy way to send (paste) Unicode characters from your script.
you must save this script as UTF-8 to make it work.
Easy Unicode functions for AutoHotkey_L (Lexikos' build)
this script requires AutoHotkey_L

デバッグ あれこれ

AutoHotkeyを流行らせるページ → スクリプト → スクリプトのデバッグ
スクリプトが期待通りに動作しているかを確認するには
AutoHotkeyを流行らせるページ → リファレンス → OutputDebug
デバッガ(DebugViewなど)に文字列を出力
110.22 Ahk script Debugger 1.1.5b (line-by-line capable)
"An interactive AHk debugger"
Debugging - Autohotkey forums
Debug helper スクリプト など
Debug() [Func] - Autohotkey forums
if you're working with #Include files
function must be called from itself rather than calling from d.ahk
to show correct info for currently executing function/filename 
debugging using A_LIneNumber - Autohotkey forums
RunDebugView.ahk - DebugView を利用。
Gui, Show bug - Autohotkey forums
Trace.ahk - DebugView を利用。
DebugBIF - debug built-in functions (was DllCallDebugger) - for AutoHotkey v1.0.48
appropriate version of LowLevel are required.

Tools

DebugViewDebugView for Windows - © Microsoft Corporation.
デバッグトレースを表示
使い方 - 参考:
差をつけるデバッグ術! ~ 知られざるログ出力 - プログラミング徹底解説
Dependency Walker (depends.exe) Home Page
最新版:2.2.6000が入手できる
Dependency Walker 日本語化パッチ+α - G-PROJECT
Dependency Walkerの文字化け対策 - G-PROJECT
[SMS] Dependency Walker for Win32 (Depends.exe) について
DLL Export Viewer
システム内のdll/指定したdllの関数をスキャン
WinAPIOverride32
WinAPI、COM、.NETのモニタリング(and フッキング)ツール - COM Auto Monitoring(see also COM Options) , .NET monitoring / Tutorial Videos
Dll Export Finder
指定したディレクトリのdllの関数をスキャン
ActiveVB - ApiViewer (en)
WinAPIビューワー
COMView
PSDK付属のOleView.Exeの代替として使用できるツール
MiTeC OLE/COM Object Explorer
PSDK付属のOleView.Exeの代替として使用できるツール
SPY for Internet Explorer
実行中のInternet Explorerで発生するイベントの監視(WebBrowser control)
IE HTML Element Spy
It retrieves the info of a DOM element under the cursor when the cursor is
hovering over Internet Explorer_Server.

REQUIRE COM Standard Library.

IE Web Recorder Developers Needed
# iWebBrowser2 Learner - 
   This tool is under major development effort due to recent interest by 
   serious members of the forum. 
   This is intended to eventually turn into a web simple script writer
   much like the packaged script recorder for other applications
# iWeb Functions - 
   Very stable well tested library the relieves
   the user of intimate understanding DOM, COM, 
   or JavaScript to control a web site 
Winspector - Ultimate Windows Message Spy
Download
Winspector install. , (web.archive.org) - Winspector
Tutorial
[pictorial] Find WM_COMMAND parameter with Winspector
An Advanced Technique.
Tutorial on posting messages to Windows
see also PostMessage/SendMessage Tutorial
WinInfo Menu
~ show the information about a window/control/Pixel in a menu form.
It is designed to be an alternative for window spy. 
AHK Window Info 1.7
This script will reveal information on windows, controls, etc. 

mini info

AutoHotkey更新情報
AutoHotkey Changes and New FeaturesAutoHotkeyを流行らせるページ → バージョンアップしたら上げるスレ
Compile_AHK IICompile_AHK II - for those who compile! - Autohotkey forums
Update of 2008-11-05 以降、"No UPX"オプション(GUI)が付いています。(コンパイラそのものは公式サイトで配布されているものに標準で付いて来ます) - Viruses found in executable after compile , Tutorial: How to compile .AHK files and include your own ico
chm版リファレンス - スクリプト投稿スレ > 127
『AutoHotkeyを流行らせるページ』のHTML HELP版、 v1.0.47.00 対応。
SciTE4AutoHotkey v2 stable
SciTE4AutoHotkey v2 - New SciTE4AHK version in the making , SciTE4AutoHotkey v2 Stable - Released.
full portable app
portableな環境で使えるようにして欲しい(←意訳) - http://www.autohotkey.com/forum/post-280902.html&sid=87b274429e4454ec26ce0d5151fa405b#280902
save.recent、save.sessionの値を 0 に(無効に)する案 - http://www.autohotkey.com/forum/post-280984.html&sid=87b274429e4454ec26ce0d5151fa405b#280984
別の方法 - 応急処置(SciTE4AutoHotkey2のバージョンが上がれば必要なくなるかもしれない):
;-- SciTELaunch.exe キック用 ------------
; SciTELaunch.exeと同じディレクトリに置く
EnvSet, SciTE_HOME, %A_ScriptDir% 
Run, %A_ScriptDir%\SciTELaunch.exe
Return
; ---------------------------------------
"SciTE4AutoHotkey v2" メニュー日本語化パック
AutoHotokeyを流行らせるアップローダ - に UP しました。 - 117.zip (フォント指定の項目修正してみました)
ironahk - Google Code
クロスプラットホーム向けに開発が進められているAutoHotkeyからのフォーク。
Forum内のスレッド:IronAHK - .NET port of AutoHotkey for Windows, Linux, Mac...
scite-4-ironahk - Google Code
IronAHK 仕様の SciTE
AutoHotkey.dll
binaries - Autohotkey.dll
source - tinku99's ahkdll at master - GitHub
Features:
* embed autohotkey in another program
* dynamically add #include type files to a running script
addFile(file). Functions and labels should work fine.
#Directives and Exit Routines may not work as expected.
* multithreading
Rosetta Code - Category:AutoHotkey
Rosetta Code is a programming chrestomathy site.
The idea is to present solutions to the same task in as many different languages as possible,
to demonstrate how languages are similar and different,
and to aid a person with a grounding in one language in learning another.

面白い所では Bogosort , Bubble Sort ,FizzBuzz なども掲載されている。 / Challenge: translate rosettacode - Was promoting autohotkey

Sparrow: AHK WebServer w/ AHK in HTML support (sources incl)
Sparrow is a webserver completly written in AHK,
which nativly supports AHK scrips being embedded in HTML. 
So called HKML files (pronounce H-Key-ML). The results are sent back to requested browser.
UNICODE version AutoHotkey (needs your tests and helps)
I just translated the source codes of AutoHotkey to support Unicode, and it can be built now.
However, it might be considered to be problematic and need your helps. 

"needs your tests and helps"