AutoItでWindowsの自動化スクリプトを作成する方法
Windowsには自動化のためのツールが数多く用意されています。標準搭載の「タスク スケジューラ」でタスクを予約実行したり、「フォルダーの操作」でフォルダのイベントを設定したりすることが可能です。しかし、こうした機能では物足りず、より複雑で強力な自動化ツールをお探しなら、AutoItは自動化スクリプトを作成するうえで非常に有用な選択肢となります。
AutoItはバッチスクリプトよりもはるかに強力なスクリプト言語であり、Windows上のほぼあらゆる種類のタスクを自動化できます。
はじめに
AutoItは決して難解なスクリプト言語ではありません。何らかのプログラミング経験があれば、ごく簡単に習得できるでしょう。文法に慣れるまでには多少時間がかかりますが、一度コツをつかめば、繰り返し発生する定型作業の自動化や、Windows上で動作するさまざまなプログラムの作成に活用できます。
まずはAutoItのインストーラーをダウンロードし、Windowsにインストールしましょう。デフォルトのインストールには簡易版のSciTEエディターが付属しており、基本的なスクリプトの作成に利用できます。より高度な機能が必要な場合は、完全版のSciTEエディターを別途ダウンロードしてインストールしてください。
AutoItのドキュメントもオンラインで公開されており、AutoIt言語について知っておくべき事項がほぼすべて網羅されています。
以下では、AutoItで実現できることの具体例をいくつか紹介します。
アプリケーションの起動と終了の自動化
アプリケーションを起動するには、AutoItのRunコマンドを使用します。
Run("program.exe", "c:\program path")

RunAsコマンドを使えば、異なるユーザー資格情報でアプリケーションを実行することもできます。また、次のアプリケーションを起動する前に特定のアプリケーションが終了するまで待ちたい場合は、RunWaitコマンドが便利です。
アプリケーションを終了させるには、ProcessCloseコマンドを使用します。
たとえば、Firefoxを終了させるには次のように記述します。
local $pid = ProcessExists("firefox.exe")
if $pid then ProcessClose($pid)
プログラムのインストールの自動化
AutoItの魅力と強力さは、Windows上のほぼあらゆる操作を自動化できる点にあります。その対象にはアプリケーションのインストールも含まれます。ネットワーク管理者として、ユーザーの操作なしにプログラムをサイレントインストールしたい場合でも、AutoItなら簡単に実現できます。
基本的な流れとしては、まずRun関数でセットアップインストーラーを実行します。
Run("setup.exe")
プログラムがカレントディレクトリにない場合は、フルパスを指定することもできます。
Run("C:\path\setup.exe")
次に、セットアップ画面が表示されるのを待つ必要があります。これにはWinWaitActive関数を使用します。
WinWaitActive("Window title", "text")

ウィンドウがアクティブになったら、ショートカットキーを使ってセットアップを進めていきます。多くのインストーラーでは、キーボードショートカットでインストール作業を進められるようになっています。通常、ショートカットキーは下線付きの文字で示されており、「Alt」キーと下線付きの文字を組み合わせて押すことで操作を実行できます。
AutoItでは、Send関数を使ってキーボードショートカットを処理します。
Send("!a")
Enterキーだけを押したい場合は、単純にEnterを送信するだけでOKです。
Send("Enter")
インストールが完了したら、WinClose関数でウィンドウを閉じることができます。
たとえば、Microsoft Officeのインストールを自動化する場合、スクリプトは次のようになります。
;Office 2010インストーラーを実行
Run("setup.exe")
;セットアップウィンドウがアクティブになるのを待機
WinWaitActive("Microsoft Office Professional Plus 2010", "setup")
;ライセンス契約に同意
Send(!a)
;次の画面へ進む
Send(!c)
;デフォルト設定でOfficeをインストール
WinWaitActive("Microsoft Office Professional Plus 2010", "Choose the installation you want")
Send(!i)
;Officeのインストール完了後にセットアップを閉じる
WinWaitActive("Microsoft Office Professional Plus 2010", "Setup Complete")
Send(!c)
このインストーラーはインストール完了後に自動的に閉じるため、WinClose関数を実行する必要はありません。
マクロの作成
AutoItをさらに便利にしてくれるのが、長くて退屈なキーストロークの連続を記録できるマクロレコーダーです。マクロレコーダーは完全版のSciTEエディターに搭載されています。

マクロレコーダーにアクセスするには、SciTEエディターを開いて「Tools → AU3Recorder」を選択するか、ショートカットキー「Alt + F6」を押します。マクロレコーダーはすべてのキーストロークを記録し、スクリプト実行時にそれらを再現します。マクロレコーダーの唯一の弱点は、各キーストロークの間にWinWaitActive関数が自動的に挿入されない点です。WinWaitActive関数を適切に含めることが重要です。そうしないと、最初のセットアップ画面が表示される前にスクリプトの実行が完了してしまうおそれがあります。

まとめ
Windowsでプログラムやタスクを自動化する方法はほかにもいくつかありますが、AutoItははるかに強力で、最も面倒な作業も驚くほど簡単にこなせます。
あなたは日々の業務で自動化を活用していますか?それとも手作業に慣れていますか?ぜひコメントで教えてください。
-
Windows 10のリカバリディスクを作成する3つの方法【USB・CD/DVD対応】
Windows 10のリカバリディスクがあれば、パソコンのOSを復元・修復できます。トラブルが発生してPCが起動しなくなったときでも、リカバリディスクを使えば問題を解決し、正常な状態に戻すことが可能です。Windows 10のリカバリディスクは比較的簡単に作成でき、その方法も複数あります。 この記事では、Windows 10の修復用USBを作成する3つの方法を紹介します。作成したUSBをPCに接続すれば、短時間でトラブルを解消できるでしょう。 方法1. Windows 10 PCでリカバリドライブを作成する 方法2. Windows 10のシステム修復ディスク(CD/DVD)を作成する 方法
-
Windows 10/11でVisual Studio Codeを使ってPowerShellスクリプトを作成・実行する方法
Windows 10やWindows 11でも、PowerShellスクリプトを作成できることをご存じでしょうか?WindowsにPowerShellをインストールしたら、次はPCで何ができるのか知りたくなるはずです。このガイドでは、Visual Studio Codeを使ってシンプルなスクリプトファイルを作成し、Windows 10およびWindows 11のPowerShellで実行する方法を解説します。 まずは基本的なPowerShellスクリプトの作り方を覚えましょう。これをマスターすれば、Windows 10とWindows 11の両方でスクリプトを作成・実行できるようになり、作業効