AutoIt3相關——基本使用篇


零、AutoIT v3在線中文手冊

https://www.jb51.net/shouce/autoit/

番外:https://www.robvanderwoude.com/

一、AutoIT可以干啥

1.運行Windows 及 DOS 下的可執行文件

2.模擬鍵擊動作(支持大多數的鍵盤布局)

3.模擬鼠標移動和點擊動作

4.對窗口進行移動、調整大小和其它操作

5.直接與窗口的“控件”交互(設置/獲取文字、移動、關閉等)

6.配合剪貼板進行剪切/粘貼文本操作

7.對注冊表進行操作

二、如何使用AutoIT

1.安裝:

百度下載安裝or(http://forspeed.onlinedown.net/down/autoit-v3-setup.zip  解壓下一步安裝即可)

2.運行:

a.桌面雙擊運行

b.dos命令調用執行

 3.快速開始:

注:autoIT關鍵字不區分大小寫;autoIT以縮進來表示代碼塊;$CmdLine[0] 保存着命令行中參數的個數,$CmdLine[1] 是第 1 個參數,
$CmdLine[2] 則是第 2 個參數……;

a.注釋:

autoIT中以分號為單行注釋,注釋掉的內容不會被執行

b.信息彈窗——MsgBox:

; 這是我寫的第二個腳本(帶自定義函數)
MsgBox(0, "我是彈窗標題", "我是彈窗內容")
; 函數名調用
TestFunc()

Func TestFunc()
    MsgBox(0, "我是函數調用彈窗標題", "我是函數調用彈窗內容")
EndFunc

c.腳本編譯:

開始菜單點擊Compile Script to .exe(x64),選擇如下(ico可以不選),后點擊convert,生成如第二張圖的可執行文件

 

 生成的可執行文件即可脫離autoIT安裝環境而執行

 4.窗口信息工具(AutoIt Window Info):

開始菜單點擊AutoIt Window Info(x64),打開窗口信息工具如下

 

 窗口信息工具可以獲取的窗口信息如下:

  •  窗口標題
  •  窗口上的文本文字(包括可見部分和不可見部分)
  •  窗口的大小和坐標位置
  •  狀態欄的內容
  •  鼠標指針的坐標位置
  •  鼠標指針所指象素的顏色值
  •  鼠標經過的控件的相關信息

5.窗口標題與文本

注:窗口標題和文本是嚴格區分大小寫的;窗口信息工具中可以直接復制標題等

WinWaitActive ( "窗口標題", ["窗口文本"], [超時時間] ):使腳本暫停執行並 一直等到 指定窗口出現且激活為止

一般來說有效的文本是指編輯框控件內的文本,此外還可以使用下面這些文本:

  •  按鈕上的文本,比如 &Yes、&No、&Next、確定(&O) 等(“&”號后的字符將帶有下划線)
  •  對話框上的文本,比如 “是否要繼續?”
  •  其它控件上的文本

a.AutoItSetOption("屬性", 參數):調整各種函數/參數的運作方式 

參數

屬性 要改變的選項。請查看下面的注意部分。
參數 相關參數(因設置的屬性不同而不同)。請查看下面的注意部分。

返回值

返回上一次設置的值。

注意

可用縮寫函數 Opt() 代替 AutoItSetOption()(兩者實際是同一函數).
如果指定一個未知屬性則 AutoIt 將會暫停執行並顯示錯誤信息。有效的屬性包括:

屬性 參數
CaretCoordMode 設置用於caret(插入符)函數的坐標參照,可以是絕對位置也可以是相對當前激活窗口的坐標位置。
0 = 相對激活窗口的坐標
1 = 屏幕的絕對位置(默認)
2 = 相對激活窗口客戶區的坐標
ColorMode 設置要使用的顏色模式,RGB 或 BGR。RGB 是默認的模式,但老版本的 AutoIt(3.0.102 之前)是以 BGR 為默認模式:
0 = 顏色值以 RGB 格式表示(0xRRGGBB)(默認)
1 = 顏色值以 BGR 格式表示(0xBBGGRR) (用於舊版的 AutoIt)
ExpandEnvStrings 更改字面字符串和 % 符號的解釋方式。默認情況下字符串按原文解釋,此選項允許您在字符串中使用形如 %environment% 這樣的環境變量,例如 "臨時文件夾的路徑是: %temp%"。
1 = 展開環境變量(類似於 AutoIt v2)
0 = 不展開展環境變量(默認)
若未設置此選項則要實現類似功能的方法是:"臨時文件夾的路徑是: " & EnvGet("temp")
ExpandVarStrings 更改字面字符串和變量/宏($ 和 @)符號的解釋方式。默認情況下字符串按原文解釋,此選項允許您在字符串中使用變量和宏,例如 "變量 var1 的值是 $var1$"。
1 = 展開變量(在此模式下如果要表示 $ 或 @ 本身則請用連續兩個相應符號表示,例如:"這里有一個美元符號 $$")。
0 = 不展開變量(默認)
FtpBinaryMode 調整FTP文件的傳輸模式。
1 = 二進制(默認)
0 = ASCII
GUICloseOnESC 當用戶在一個GUI窗口(處於激活狀態時)按下 ESC 鍵則 $GUI_EVENT_CLOSE 消息將被發送。此選項用以切換這一行為。
1 = 在按下 ESC 時發送消息 $GUI_EVENT_CLOSE(默認).
0 = 在按下 ESC 時不發送消息 $GUI_EVENT_CLOSE
GUICoordMode 設置用於 GUICtrlSetPos 函數的坐標參照。
1 = 絕對坐標(默認)將相對於對話框。
0 = 相對於上一個控件的起始位置(左上角)。
2 = 相對當前單元格的位置。若參數“左側”“上方”指定為 -1則並不會增加起始位置,因此下一行應該用 -1,0 來表示;下一個單元格則是 0,-1;當前單元格則是 -1,-1
GUIOnEventMode 啟用/取消 OnEvent 函數
0 = (默認)取消。
1 = 啟用。
GUIResizeMode 更改控件大小調整的模式。
0 = (默認)不調整
<1024 = 詳情請查看 GUICtrlSetResizing 函數的說明。
MouseClickDelay 更改每個鼠標點擊命令之間的延遲時間長度。
以毫秒為單位(默認值 = 10)。
MouseClickDownDelay 更改在松開按鍵之前按住按鈕的時間長度。
以毫秒為單位(默認值 = 10)。
MouseClickDragDelay 更改鼠標開始拖曳到結束拖曳之間的時間長度。
以毫秒為單位(默認值 = 250)。
MouseCoordMode 設置用於鼠標函數的坐標參照,可以是絕對位置也可以是相對當前激活窗口的坐標位置。
0 = 相對激活窗口的坐標
1 = 屏幕的絕對位置(默認)
2 = 相對激活窗口客戶區的坐標
MustDeclareVars 如果設置了此選項為1則所有變量在使用之前必須先使用 Dim/Local/Global 聲明,這將有助於減少各種因誤拼變量而引起的bug的出現。
1 = 變量必須先聲明
0 = 變量不需預先聲明(默認)
OnExitFunc 設置在 AutoIt 退出時將調用的函數(默認值為 OnAutoItExit).
PixelCoordMode 設置用於象素函數的坐標參照,可以是絕對位置也可以是相對當前激活窗口的坐標位置。
0 = 相對激活窗口的坐標
1 = 屏幕的絕對位置(默認)
2 = 相對激活窗口客戶區的坐標
RunErrorsFatal 設置腳本在遇到嚴重錯誤時是否自動終止(比如在 Run/RunWait 函數因為 路徑錯誤/找不到文件/登陸帳號錯誤 而導致執行失敗時):
1 = 嚴重(致命性)錯誤(默認)
0 = 靜默(普通的)錯誤(@error 將設為 1)
SendAttachMode 指定在使用 Send() 函數時 AutoIt 是否捆綁(attach)輸入線程。當不捆綁的時候(默認模式 = 0)對 capslock/scrolllock/numlock 等按鍵狀態的檢測將是不准確的(指在 NT4 下)。不過,在設置捆綁模式 = 1的時候,Send("{... down/up}") 等語法將不被支持,在發送按鍵的時候也可能會導致系統掛起等問題。至於 ControlSend() 函數則 總是 捆綁線程的,而且不受此模式設置的影響。
0 = 不捆綁(默認)
1 = 捆綁
SendCapslockMode 指定是否讓 AutoIt 在執行 Send 函數之前保存大小寫切換鍵(CapsLock)的狀態並在完成操作后恢復到原來的狀態。
0 = 不保存/恢復
1 = 保存並恢復(默認)
SendKeyDelay 更改發送鍵擊命令之間的延遲時間長度。
以毫秒為單位(默認值 = 5)。設置此值為0時也許會無效,這時請使用1代替。
SendKeyDownDelay 更改在每次鍵擊期間(松開按鍵之前)按住按鍵的時間長度。對於一些需要花費一定時間才能注冊鍵擊的應用程序(以及各種游戲)您可能就要提高這一數值。
以毫秒為單位(默認值 = 1)。
TrayIconDebug 在托盤圖標上顯示當前腳本執行到的那一行的相關信息(工具提示)以助調試。
0 = 不顯示調試信息(默認)
1 = 顯示調試信息
TrayIconHide 隱藏 AutoIt 托盤圖標。注意:托盤圖標仍會在程序剛運行時出現大約 750 毫秒。
0 = 顯示托盤圖標(默認)
1 = 隱藏托盤圖標
WinDetectHiddenText 指定是否讓隱藏的窗口文本也能被窗口匹配函數“看見”(可用於窗口文本參數)。
0 = 不檢測隱藏文本(默認)
1 = 檢測隱藏文本
WinSearchChildren 允許窗口搜索程序在搜索頂層窗口的同時也搜索子窗口。
0 = 僅搜索頂層窗口(默認)
1 = 搜索頂層窗口及子窗口。
WinTextMatchMode 更改窗口函數在執行搜索操作時的窗口文本匹配模式。
1 = 完全匹配(較慢)模式(默認)
2 = 快速模式
在快速匹配模式下,AutoIt 將只能“看見”對話框文本、按鈕文本和某些控件的標題,而在默認模式下則能檢測到更多的文本(例如記事本窗口的內容)。
如果在執行較多窗口的搜索操作時遇到性能(指速度)上的問題,那么您就應該考慮使用快速模式。
WinTitleMatchMode 更改窗口函數在執行搜索操作時的標題匹配模式。
1 = 只匹配標題的前面部分(默認)
2 = 標題的任意子串皆可匹配
3 = 完全匹配標題
4 = 高級模式,詳情請查看 窗口標題與文本(高級篇)
WinWaitDelay 更改每次成功執行窗口相關操作后的延遲時間長度。
以毫秒為單位(默認值 = 250)。

b.WinWait四種模式

模式1(默認):只匹配標題的前面部分(默認)
模式2: 標題的任意子串皆可匹配
模式3:完全匹配標題

模式4:高級模式

"classname=" 只匹配具有相同類別名的窗口。例如要識別一個類別名為 “MYCLASS1”的窗口,則可把“classname=MYCLASS1”作為窗口標題 參數使用。"active" 表示當前激活的窗口(實際作用與默認的 WinTitleMatchMode 模式下的 "" 一樣)。"last" 使用上一次成功匹配的窗口,這樣就不必三番四次地指定窗口標題和窗口文本了。

    AutoItSetOption("WinTitleMatchMode", 4)

    WinWaitActive("demo")

    WinWait("classname=Notepad++","",5)   ;匹配classname是Notepad++的窗口

    WinClose("last")   ;關閉前面匹配成功的記事本窗口

 6.控件

注:AutoIt 僅支持標准的 Microsoft 控件 - 有些應用程序(的作者)自己寫的自定義控件看起來很像是標准的 MS 控件,但卻無法被腳本程序識別,那就只能靠您的經驗判斷了,實踐出真理!

a.控件的信息包括:

  • 控件 ID(Control ID):窗口信息工具獲取
  • 類別名(ClassNameNN):窗口信息工具獲取
  • 文本(Text):窗口信息工具獲取
  • 控件句柄 (HWND):使用 ControlGetHandle 函數獲取,ControlGetHandle ( "窗口標題", "窗口文本", 控件ID)

b.ControlClick ( "窗口標題", "窗口文本", 控件ID [, 按鈕] [, 點擊次數]] ):向指定控件發送鼠標點擊命令

參數

窗口標題 目標窗口標題。
窗口文本 目標窗口文本。
控件ID 目標控件。請查看關於 控件 的說明。
按鈕 [可選參數] 要點擊的按鈕,可以是 "left"(左鍵)、"right"(右鍵) 或 "middle"(中鍵)。默認值為 left(左鍵)。
點擊次數 [可選參數] 要點擊鼠標按鈕的次數。默認值為 1.

返回值

成功: 返回值為1。
失敗: 返回值為0。

注意

在執行此命令前可能還需要使用 ControlFocus 命令把焦點轉到目標控件上。
模擬點擊控件僅在目標控件的父窗口處於激活狀態(一般程序會自動激活該窗口)時才能保證100% 的准確性。

相關

ControlCommandControlFocusMouseClick

 

 

持續更新中。。。。。。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM