このチュートリアルではメモ帳の起動、テキスト入力、終了の自動化方法を説明します。AutoItスクリプトの作成・実行方法についてはHelloWorldチュートリアルを見て既に理解しているものとします。
初めにnpad.au3という空のスクリプトを作成してそのファイルを編集します(メモ帳かSciTeの好きな方を使ってください)。
最初に調べなければいけないのはメモ帳実行ファイルの名前です。それはnotepad.exeです - この情報はスタートメニューにあるメモ帳のショートカットアイコンのプロパティを見るとわかります。メモ帳を実行するためにはAutoItのRun関数を使います。この関数は指定した実行ファイルを実行して処理を返します。
スクリプトの1行目に次のように書きます。
Run("notepad.exe")
スクリプトを実行します。スクリプトに問題がなければ新しいメモ帳が開かれるはずです。
アプリケーションを自動化する場合、どのウィンドウを操作するか知るためにAutoItはウィンドウタイトルをチェックします。 メモ帳の場合ウィンドウタイトルはもちろんUntitled - Notepadです(訳注:日本語版ウィンドウズでは"無題 - メモ帳")。AutoItはウィンドウタイトルを使用する際、大文字と小文字を区別するので正確なタイトルを得る必要があります - もっともよい方法はAutoIt Window Information Toolを使用することです。Start Menu \ AutoIt v3 \ AutoIt Window InfoからInformation Toolを実行してください。
Info Toolを実行したらアクティブにするために新しく開いたメモ帳ウィンドウをクリックします。Info Toolはメモ帳の情報を表示するはずです。今知りたい情報はウィンドウのtitleです。
AutoIt Info Toolのtitleの内容を選択してCTRL-Cを押してクリップボードにコピーします - これでミススペルを心配せずにスクリプトにタイトルを貼り付けられます。
メモ帳をRunした後、なんらかのキーストロークを送信する前に メモ帳が現れるのを待ってそれをアクティブにする必要があります。ウィンドウが現れるのを待つにはWinWaitActive関数を使います。AutoItのウィンドウ関連関数の多くはウィンドウのタイトルをパラメータとして必要とします。
スクリプトの2行目に次のように入力します。(CTRL-VまたはEdit\Pasteを使ってクリップボードからウィンドウタイトルを貼り付けます。)
WinWaitActive("Untitled - Notepad")
(訳注:日本語版ウィンドウズではパラメータの内容が変わります。)
メモ帳ウィンドウが現れたら次になにかテキストを打ち込んでみましょう。それにはSendを使います。
次の1行をスクリプトに付け加えましょう。
Send("This is some text.")
スクリプトは全部で次のようになります。
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")
開いてるメモ帳を全て閉じて(これはスクリプトを実行するたびに必要です。さもなければ最後にはメモ帳だらけになってしまいます!)スクリプトを実行します。
メモ帳が実行されて、テキストが魔法のように現れます!
次にメモ帳を閉じたいと思います。これはWinClose関数でできます。
WinClose("Untitled - Notepad")
(訳注:日本語版ウィンドウズではパラメータの内容が変わります。)
メモ帳を閉じようとすると変更を保存するかどうか訊ねるメッセージが現れます。Window Info Toolを使ってポップアップしたダイアログの詳細を調べて操作しましょう(^ ^)
そのためにダイアログがアクティブになるの待つための1行を加えましょう(関数をより正確に動かすために、また新しいウィンドウをもとのメモ帳と区別するためにウィンドウテキストも使うようにします)。
WinWaitActive("Notepad", "Do you want to save")
(訳注:日本語版ウィンドウズではパラメータの内容が変わります。)
次に自動でAlt-Nを押してNo/Don't saveボタンを選択します(一般に下線付きの文字はウィンドウズではALTキーとその文字でキーボードショートカットができることを示します)。Send関数でALTキーを送信するためには !を使います。
Send("!n")
完成したスクリプトは次のようになります。
Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("This is some text.")
WinClose("Untitled - Notepad")
WinWaitActive("Notepad", "Do you want to save")
Send("!n")
スクリプトを実行するとメモ帳が開き、テキストが書き込まれ、そして閉じます!このチュートリアルで学んだテクニックを使えば他の多くのアプリケーションを自動化することができます。