本指南介紹如何自動打開記事本, 自動鍵入一些文本, 然后關(guān)閉記事本。
這是假設(shè)你已經(jīng)在 HelloWorld
指南中熟悉了腳本的創(chuàng)建和運(yùn)行 .
首先創(chuàng)建一個名為 npad.au3 的腳本,并使用記事本或者 SciTe 編輯器編輯這個腳本.
我們首先需要知道的是記事本可執(zhí)行文件的名稱: notepad.exe -
你可以通過"開始"菜單中的記事本的快捷方式圖標(biāo)的右鍵屬性頁看到這個文件名.
使用記事本, 我們要執(zhí)行 AutoIt Run
函數(shù).
這個函數(shù)簡單啟動一個給定的可執(zhí)行文件, 然后繼續(xù)執(zhí)行腳本自身.
鍵入腳本的第一行:
Run("notepad.exe")
運(yùn)行腳本 - 如果沒有出現(xiàn)錯誤, 應(yīng)該會打開記事本.
當(dāng)應(yīng)用程序自動化操作時, AutoIt 會檢測窗口標(biāo)題.
記事本程序的窗口標(biāo)題, 顯然是"無標(biāo)題 - 記事本"
對于英文窗口,AutoIt 檢測文本是區(qū)分大小寫的, 當(dāng)使用窗口標(biāo)題為英文, 必須確保文本完全正確 - 最好的方式是使用 AutoIt
的窗口中的信息工具.
對于漢化版的 AutiIt, 此工具可在"開始"菜單的 "autoit_ACN\AutoIt
工具箱\程序相關(guān)工具\(yùn)"項(xiàng)下啟動.
打開窗口信息工具后, 單擊記事本窗口以激活它;此時窗口信息工具會為您提供有關(guān)信息.
現(xiàn)在我們感興趣的信息是窗口標(biāo)題:
在 AutoIt 的信息工具窗口選中記事本窗口標(biāo)題, 按下Ctrl + C 將標(biāo)題復(fù)制到剪貼板.
然后粘貼到我們的腳本中, 這樣可以避免拼寫錯誤.
Run 運(yùn)行記事本程序后, 我們需要等待它出現(xiàn),
并發(fā)送任何按鍵前使其成為激活德窗口.
這可以使用 WinWaitActive
函數(shù)完成.
大多數(shù) AutoIt 的窗口函數(shù)需要窗口標(biāo)題作為參數(shù).
輸入腳本的第二行:
(使用 Ctrl + V 或 "編輯\粘貼" 菜單, 從剪貼板粘貼這個窗口標(biāo)題)
WinWaitActive("無標(biāo)題 - 記事本")
確信記事本窗口可見, 我們輸入一些文字. 這可以使用 Send 函數(shù).
加入這樣一行腳本:
Send("記事本自動操作實(shí)例")
整個腳本會是這個樣子的:
Run("notepad.exe")
WinWaitActive("無標(biāo)題 - 記事本")
Send("記事本自動操作實(shí)例")
關(guān)閉打開的記事本窗口. 每次運(yùn)行腳本時你必須這樣做, 否則會允許大量程序副本!
然后運(yùn)行我們編輯的腳本.
您應(yīng)該看到記事本重新打開, 然后一些文本奇跡般地出現(xiàn)在記事本窗口!
下一步我們可以用 WinClose
函數(shù)關(guān)閉記事本.
WinClose("無標(biāo)題 - 記事本")
關(guān)閉記事本時, 你會看到一個詢問您是否保存更改的消息框.
使用窗口信息工具獲取這個彈出消息窗口的信息,已經(jīng)能使我們應(yīng)付這種對話框的細(xì)節(jié):
所以, 我們必須添加一行等待這個對話框并使其激活的語句代碼.
我們使用窗口的文本, 使函數(shù)能更可靠地區(qū)分原記事本窗口和這個新窗口:
WinWaitActive("記事本", "是否將更改保存到")
下一步我們要使腳部自動點(diǎn)擊 Alt + N 快捷鍵選擇 No /不保存按鈕.
通常窗口中帶下劃線的字母表示可以與 ALT 鍵配合使用的快捷鍵字母.
在發(fā)送函數(shù) Send 中, 使用
! 符號代表
ALT 鍵
Send("!n")
完整的腳本現(xiàn)在看起來像這樣:
Run("notepad.exe")
WinWaitActive("無標(biāo)題 - 記事本")
Send("記事本自動操作實(shí)例")
WinClose("無標(biāo)題 - 記事本")
WinWaitActive("記事本", "是否將更改保存到")
Send("!n")
運(yùn)行腳本,你會看到記事本自動打開, 自動出現(xiàn)一些文本, 然后自動關(guān)閉!
您現(xiàn)在應(yīng)該可以使用本指南學(xué)到的技術(shù), 自動執(zhí)行許多其它應(yīng)用程序了.
provider with jb51.net (unicode) |