AutoItとは|Windows向けフリーのスクリプト自動化プログラミング言語の定義と特徴

AutoIt /ɔːtoʊɪt/は、Microsoft Windows用のフリーウェアのプログラミング言語である。バージョン1と2では、Microsoft Windowsのプログラムの自動化スクリプトを作成するために使用されていた。これらはマクロと呼ばれることもある。バージョン3では、プログラミング言語が拡張され、より多くのことができるようになりました。

AutoIt 1 と 2 のスクリプト言語はステートメント駆動型でした。これはユーザーのコンピュータへの入力をシミュレートするように設計されていました。バージョン3以降、AutoItの構文が変更されました。現在では BASIC プログラミング言語に似ています。AutoItバージョン3は汎用プログラミング言語です。配列などのデータ型を持つことができます。

AutoIt スクリプトをスタンドアロンの実行ファイルに変換することができます。これは、AutoIt インタープリタがインストールされていないコンピュータ上で実行することができます。広範囲の関数ライブラリが利用可能です。これらは UDF(User Defined Functions)として知られています。いくつかは標準で含まれています。その他のものはウェブサイトから入手できます。これらは言語に追加の機能を追加します。AutoItには特別なエディタ、統合開発環境またはIDEがあります。これはフリーの SciTE エディタをベースにしています。コンパイラとヘルプテキストはこの特別なエディタに含まれており、開発者のための標準的な環境を提供します。



概要と背景

AutoItは主にWindowsの操作自動化を目的として設計されたスクリプト言語です。ウィンドウの操作、キーボード入力やマウス操作のシミュレーション、コントロールへの直接アクセス、ファイル操作、レジストリ操作など、Windows上で必要な多くのタスクを自動化できます。バージョン3以降は、より汎用的なプログラミング機能(変数、配列、関数、ループ、条件分岐など)を備え、簡単なアプリケーション作成にも使われます。

主な特徴

  • Windows専用:Windows APIやGUIコントロールに深く統合されており、OSの操作を細かく制御できます。
  • シンプルな文法:読みやすく覚えやすい構文で、スクリプト作成の敷居が低いです(BASICに似たスタイル)。
  • 豊富な組み込みコマンド:ウィンドウ操作、ファイルI/O、文字列処理、ネットワーク、プロセス管理など多くの命令を標準で提供。
  • UDF(ユーザー定義関数):コミュニティや公式で多数のUDFが公開され、機能を容易に拡張できます(例:COM操作、画像認識、データベース接続など)。
  • コンパイル機能:スクリプトを単一の実行ファイル(EXE)へ変換でき、配布や実行環境の簡素化が可能です。
  • AutoItX:COM/DLLとして利用でき、他言語(VBScript、C#、Pythonなど)からAutoItの機能を呼び出せます。

代表的なコマンドと用途

  • WinWait / WinActivate / WinClose:ウィンドウの待機、アクティブ化、終了などウィンドウ制御。
  • ControlClick / ControlSend:ウィンドウのコントロール(ボタン、テキストボックス等)へ直接命令を送ることで、座標に依存しない自動化が可能。
  • Send / MouseClick:キーボード・マウスの入力をシミュレート(単純なマクロ用途)。
  • PixelSearch / PixelGetColor:画面上のピクセルを検索し、位置や色に応じた処理を行う。
  • GUICreate / GUI関係コマンド:スクリプトでGUIアプリケーションを作成可能。

簡単なサンプル

以下は、指定したウィンドウが表示されるまで待ち、テキストを送信する簡単な例です。

 ; メモ帳がアクティブになるまで待つ WinWaitActive("無題 - メモ帳") ; テキストを送信 Send("Hello, AutoIt!{ENTER}") 

配布と実行

作成したスクリプト(.au3ファイル)は、配布前に標準ツールで単一の実行ファイル(.exe)へコンパイルできます(Aut2Exeなど)。コンパイルされたEXEは、ターゲットマシンにAutoItのインタープリタがインストールされていなくても実行できます。アイコンの変更やアイコン埋め込み、簡易的な暗号化オプションなどもサポートされています。

開発環境とコミュニティ

公式の開発環境はSciTEベースのエディタ(SciTE4AutoIt3)が提供されており、構文ハイライト、補完、デバッグ、ヘルプ統合などスクリプト開発に便利な機能が組み込まれています。公式フォーラムやUDFライブラリ、サンプルスクリプトが豊富にあり、初心者から上級者まで学びやすいコミュニティがあります。

利用例と注意点

  • 定型処理の自動化、インストールの自動化、スクリーンスクレイピング、簡易的なテストスクリプト作成、デスクトップアプリの自動操作などに適しています。
  • GUI自動化は画面解像度やウィンドウ位置、アプリのバージョンに依存しやすく「壊れやすい」面があります。可能な場合はControl系コマンドやCOM経由で操作する方法を優先すると堅牢性が高まります。
  • Windows専用のため、マルチプラットフォームが必要な用途には向きません。

まとめ

AutoItはWindows環境での自動化を手早く実現できる実用的なスクリプト言語です。シンプルな文法と豊富な標準機能、コミュニティによるUDF群により、日常業務の自動化から簡易アプリケーション作成まで幅広く活用できます。ただしGUI操作の脆弱性やWindows限定である点を踏まえ、利用目的に応じた設計・実装が重要です。

 典型的なAutoITスクリプトのスクリーンショットZoom
典型的なAutoITスクリプトのスクリーンショット

特徴

  • Windows 用 BASIC ライクな構造のスクリプト言語
  • スタンドアロン実行ファイルへのコンパイル
  • 特定のアプリケーションやアプリ用のアドオンライブラリやモジュール
  • TCPおよびUDPプロトコルをサポート
  • コンポーネントオブジェクトモデル(COM)をサポート
  • DLLファイル内の関数を呼び出す
  • コンソールアプリの実行と標準ストリームへのアクセス
  • 実行時に抽出するコンパイルファイルにデータファイルを含める
  • メッセージボックスや入力ボックスを含むグラフィカルユーザーインターフェースの作成
  • サウンドの再生、一時停止、再開、停止、シーク、サウンドの現在位置の取得、サウンドの長さの取得
  • マウスの動きをシミュレート
  • ウィンドウとプロセスの操作
  • ユーザーの入力やキーストロークをアプリやアプリ内の個々のコントロールに送信することを自動化
  • バージョン3.2.4.0からのUnicodeサポート
  • バージョン3.2.10.0から64ビットコードをサポート
  • 正規表現をサポート
  • ユーザーアカウント制御に対応
  • ライブラリによるオブジェクト指向設計



使用方法

AutoItは、Microsoft Windows用のユーティリティーソフトウェアを作成するためによく使用されています。これらのプログラムは、ルーチンタスクを自動化することができます。使用例としては、システム管理、監視、メンテナンス、ソフトウェアのインストールなどがあります。また、ユーザーのインタラクションをシミュレートするためにも使用されます。この用途では、人間のユーザーのように振る舞うAutoItスクリプトによってアプリケーションが「駆動」されます。AutoITスクリプトは、キープレスマウスクリック、タイプテキストなどを発行することができます。このようにして、アプリケーションの人間のユーザをシミュレートします。

AutoItは低コストのラボラトリーオートメーションに使用されています。アプリケーションには、機器の同期化、アラーム監視、結果収集などがあります。3Dプリンターなどのデバイスも制御できます。



例としては、以下のようなものがあります。

ハローワールド

au3> ; 定数値のライブラリを利用できるようにします。#au3> ; "Hello, world!"をメッセージボックスに表示する。MsgBox($MB_SYSTEMMODAL, "Title", "Hello, world!")

Windowsの電卓を自動化する

au3> ; 定数値のライブラリを利用できるようにします。#au3> ; 6秒のタイムアウトでメッセージボックスを表示します。MsgBox($MB_OK, "Attention", "Avoid touch the keyboard or mouse during automation.", 6) ; Windows電卓を実行します。実行("calc.exe") ; ; 電卓が10秒のタイムアウトでアクティブになるのを待ちます。WinWaitActive("[CLASS:CalcFrame]"""10) ; 電卓は10秒後に表示されなかった場合は、スクリプトを終了します。WinExists("[CLASS:CalcFrame]") = 0の場合は終了 ; 自動的に電卓に現在の年を入力します。Send(@YEAR) ; スクリプトの速度を少し落として、何が起こっているのかを確認してみましょう。Sleep(600) ; 自動的に「4で割る」と入力し、600ミリ秒スリープする。Send("/4") Sleep(600) ; リターンキーを押して結果を表示し、600msスリープ。Send("{ENTER}") Sleep(600) ; Windows のショートカット Ctrl+C で結果をクリップボードにコピーします。Send("^c") ; クリップボードの内容を変数に宣言し、代入します。Local $fResult = ClipGet() ; 変数に小数点が含まれているかどうかを確認します。If StringInStr($fResult, ".") Then ; タイムアウト5秒のメッセージボックスを表示する。MsgBox($MB_OK, "うるう年", @YEAR & " is not a leap year.", 5) Else ;      メッセージは、現在の年がうるう年の場合にのみ表示されます。MsgBox($MB_OK, "うるう", @YEAR & " is a leap year.", 5) EndIf ; Windows の電卓を閉じます。WinClose("[CLASS:CalcFrame]" )

平均値を探す

au3> _Example() ; 例題を実行します。Func _Example() ; Local $sInput = InputBox("平均値を検索", "カンマ区切りの数値を入力してください: 1,2,42,100,3")   ; エラーが発生した場合はスクリプトを終了します。         If @error Then Exit ; ユーザの入力を配列に入力します。Local $aSplit = StringSplit($sInput, ",") ; _Find_Average() に渡してから、エラーをチェックします。Local $fAverage = _Find_Average($aSplit) If @error Then Exit ; 結果をメッセージボックスに表示します。MsgBox($MB_OK, "Find Average", "Result: " & $fAverage) EndFunc ;==>_   Example Func _Find_Average($aArray) ; 入力が正しい型(配列)でない場合は     詳細と一緒にエラーを返す。If Not IsArray($aArray) Then Return SetError(1, 0, VarGetType($aArray))     ; より詳細なチェックが可能ですが、簡潔にするためにここでは1つだけ実行されます。 ; 数値の合計を格納する変数を宣言します。Local $iArraySum = 0 ; 配列をループします。For $i = 1 To $aArray[0] ; 各配列要素の数値の合計をインクリメントします。iArraySum += Number($aArray[$i]) Next ; 小数点以下2桁に丸めた平均値を返す。Return Round($iArraySum / $aArray[0], 2) EndFunc ;==>_Find_Average



歴史

  • 1999年1月 - 初のAutoItバージョン(1.0
  • 1999年8月 - AutoIt v2 と AutoItX
  • 1999年9月 - Compilerを使用したAutoItの最初のバージョン
  • 2002年12月 - AutoIt v3 (パブリックベータ)
  • 2004年2月 - AutoIt v3 (安定版)
  • 2006年9月 - Auto3Lib開始
  • 2007年11月 - AutoIt v3.2.10.0 がリリースされ、Auto3Lib が AutoIt v3 に組み込まれました。
  • 2008年5月 - AutoIt v3.2.12.0 がリリースされ、GUI機能が追加されました。
  • 2008年12月 - AutoIt (および AutoItX) v3.3.0.0 がリリースされました。
  • 2009年12月 - AutoIt v3.3.2.0 がリリースされました。
  • 2010年1月 - AutoIt v3.3.4.0 リリース
  • 2010年3月 - AutoIt v3.3.6.0 がリリースされました。
  • 2010年4月 - AutoIt v3.3.6.1 がリリースされました。
  • 2011年12月 - AutoIt v3.3.8.0 がリリースされました。
  • 2012年1月 - AutoIt v3.3.8.1 がリリースされました。
  • 2013年12月 - AutoIt v3.3.10.0 がリリースされました。
  • 2014年6月 - AutoIt v3.3.12.0 がリリースされました。
  • 2015年7月 - AutoIt v3.3.14.0とv3.3.14.1がリリースされました。
  • 2015年9月 - AutoIt v3.3.14.2リリース
  • 2018年2月 - AutoIt v3.3.14.3リリース



ライセンス

AutoItの開発者はもともとGNU一般公衆ライセンス(GPL)のもとでソースコードをリリースしました。

2006年には、バージョン3.2.0以降のバージョンでは、独自のクローズドソースライセンスに変更されました。

バージョン3.1のコードの一部は、AutoHotkeyプロジェクトによるフォークを作成するために使用されました。これは GPL ライセンス条項の下で許可されています。AutoHotkeyコミュニティは、GPLのもとでコードを開発し、リリースし続けています。



質問と回答

Q:AutoItとは何ですか?


A:AutoItはMicrosoft Windows用のフリーウェア・プログラミング言語です。

Q:バージョン1、2でのAutoItの使用方法を教えてください。
A: バージョン1、2では、Microsoft Windowsプログラムの自動化スクリプト(マクロとしても知られています)を作成するために使用されていました。

Q:バージョン3のAutoItは何が変わったのですか?


A: バージョン3では、より多くのことができるようにスクリプト言語が拡張され、BASICプログラミング言語に似た構文に変更されました。

Q: AutoItスクリプトにはどのようなデータを含めることができますか。
A: AutoItスクリプトには、配列のようなデータタイプを含めることができます。

Q: インタープリターがインストールされていないコンピュータでも、AutoItスクリプトを実行できますか。
A: はい。AutoItスクリプトはスタンドアロン実行ファイルに変換でき、インタープリターがインストールされていないコンピュータでも実行できます。

Q:言語で利用できる特別な能力はありますか?


A: はい、UDF(User Defined Functions)と呼ばれる様々な関数ライブラリが用意されており、標準装備されているものと、ウェブサイトから入手できるものがあります。

Q: AutoItで開発するための特別なエディターはありますか?


A: はい、無料のSciTEエディタをベースにした専用エディタがあり、コンパイラとヘルプテキストを含む開発者のための標準的な開発環境を提供しています。

AlegsaOnline.com - 2020 / 2025 - License CC3