AutoHotKey 經常使用命令及示例

1、示例(自動打開QQ聲音)前端

Loop ;循環體
{
WinWait, 與 qq009 交談中,
IfWinNotActive, 與 qq009 交談中, , WinActivate, 與 qq009 交談中,
WinWaitActive, 與 qq009 交談中,shell

Controlclick, Button36 ;接受請求express

Sleep, 500數組

Control, Check, true, Button34 ;打開聲音瀏覽器

Sleep, 100
}
returndom

 

2、經常使用命令編輯器

 

一、MsgBox命令有幾種格式?
MsgBox, 文本 或 MsgBox [, 類型,標題, 文本, 顯示時間 ]

二、MsgBox命令按鈕有幾種類型?
OK—0
OK/Cancel—1
Abort/Retry/Ignore—2
Yes/No/Cancel—3
Yes/No—4
Retry/Cancel—5
Icon Hand (stop/error)—16
Icon Question—32
Icon Exclamation—48
Icon Asterisk (info)—64
Make 2nd button the default—256
Make 3rd button the default—512
System Modal (always on top) —4096
Task Modal—8192 這些參數容許相加而獲得複合效果。

三、顯示含有yes/no按鈕並總在頂端的對話框?
msgbox,4100,標題,內容

四、MsgBox如何換行?
MsgBox,你好,歡迎關注靜海安瀾閣 `n 請繼續關注

五、如何對MsgBox命令的選擇結果進行處理?
IfMsgBox, ButtonName
ButtonName可選項: Yes No OK Cancel Abort Ignore Retry Timeout

六、對話框顯示時間,並以秒爲單位?
msgbox , , 標題 , 內容 , 5

七、運行外部可執行程序或者直接打開文件?
Run, 目標文件[ , 工做目錄 , Max|Min|Hide|UseErrorLevel , 輸出PID 變量]

八、如何運行記事本並以最大化狀態顯示?
Run, Notepad.exe , , Max

九、如何直接打開文件?
Run, MyFile.txt

十、命令行解釋器cmd.exe 用那個宏來表示?
%ComSpec% /k在執行完命令後保留命令提示窗口,而/c則在執行完命令以後關閉提示窗口

十一、命令「dir c:\Windows\system32」如何實現?
Run, %ComSpec% /k dir c:\Windows\system32

十二、如何打開網頁?
Run, http://hi.baidu.com/xuejinglan

1三、如何打開系統屬性窗口?
Run control sysdm.cpl 須要的話能夠搜索全部的*.cpl文件

1四、打開控制面板?
run,control

1五、如何打開搜索窗口且指定搜索位置?
Run, find C:\

1六、如何顯示指定文件的屬性窗口?
Run, properties MyFile.txt 注意:AHK 在退出前將自動關閉打開的屬性窗口!

1七、如何打印指定文件?
Run, print MyFile.txt

1八、等待窗口出現、被激活、被關閉用那些命令?
WinWait/WinWaitActive/WinWaitClose

1九、如何使目標窗口出現以前不執行後面語句?
WinWait [, 窗口標題, 窗口文本, 超時時間, 排除標題, 排除文本]

20、如何使目標窗口成爲活動窗口?
WinActivate [,窗口標題, 窗口文本, 排除標題, 排除文本]

2一、關閉窗口有幾種方式?
正常關閉窗口(WinClose ),強行關閉窗口(WinKill):
WinClose/WinKill [ , 窗口標題, 窗口文本, 超時時間, 排除標題, 排除文本]

2二、同名窗口使咱們沒法用窗口標題準確標識窗口,如何使用窗口ID來準肯定位窗口?
使用得到窗口句柄的命令WinGet
WinGet[, 輸出變量, CMD, 窗口標題, 窗口文本, 排除標題, 排除文本]

2三、如何用窗口ID來替代窗口標題?
ahk_pid %ThisPID%

2四、那個命令把鼠標點擊事件發送到目標窗口的目標控件上?
ControlClick [, 目標控件或座標位置, 窗口標題, 窗口文本, 鼠標按鈕, 點擊次數, 選項, 排除標題,排除文本]

2五、ControlClick命令中,目標控件參數主要是什麼?
目標控件參數是指要點擊的控件的類別名(ClassNN)或控件文本,還可使用控件句柄(若用的是控件句柄則第一個參數需留空,

並在第二個參數中使用ahk_id %控件句柄%)。

2六、如何得到目標控件信息?
先打開你要進行操做的目標窗口,而後運行AutoIt3 Window Spy,把鼠標移到目標控件上

2七、鼠標單擊系統屬性肯定按鈕代碼是?
ControlClick, 肯定, 系統屬性
ControlClick, Button2, 系統屬性

2八、目標窗口或控件是隱藏狀態,ControlClick還能夠點擊目標控件嗎?
能夠點擊目標控件,但不能保證成功率。

2九、如何設置控件文本?
ControlSetText [, 目標控件, 新文本, 窗口標題, 窗口文本, 排除標題, 排除文本]
例如:ControlSetText, Edit1, D:\foobar2000, Setup foobar

30、如何選中和取消單選框和複選框項目中的選擇項目?
Control [, 命令, 值, 目標控件, 窗口標題, 窗口文本, 排除標題, 排除文本]
其中,「命令」就是讓咱們指定要進行何種設置的參數。對這些單選框/複選框按鈕來講,適用的命令是「Check」和「UnCheck 」。

例如:Control, Check, , Button5, foobar
Control, UnCheck, , Button7, foobar

3一、如何選擇下拉列表的項目?
還是使用Control命令,適用的命令是「Choose, N」和「ChooseString, String」,分別表示選中第N個項目和選中與字符串String

匹配的項目;例如:
Control, Choose, 5, ComboBox1, Installer
Control, ChooseString, 簡體中文, ComboBox1, Installer

3二、鍵盤如何重定義?
a::b

3三、字符串如何進行自動替換?
::is::island of resistance或者
::china::
Clipboard=中華人民共和國
send,^V
Return

3四、屏蔽或開啓鍵盤、鼠標?
BlockInput 命令後,緊跟on,則屏蔽鍵盤鼠標操做,緊跟off,則從新啓用用戶輸入。
如何僅僅屏蔽鼠標?如何恢復? BlockInput,MouseMove 恢復爲:BlockInput, MouseMoveOff

3五、如何創建一個彈出式窗口例示文本?如何關閉?
SplashTextOn [, 寬度, 高度, 標題, 文本]
`n 能夠在MsgBox和SplashTextOn等命令中對顯示的文本進行換行。
SplashTextOff 爲關閉SplashTextOn命令創建的彈出式窗口。

3六、如何將一系列指令重複執行指定次數? Loop [, Count]
{
循環體……
}

3七、Loop中的count容許是表達式或者變量嗎?
Count不容許是表達式,但容許是一個變量。
如何知道loop如今循環到第幾回? loop 指令隱含有一個變量 A_Index ,用來記錄當前狀態是第幾回循環

3八、如何中斷循環?
if a_index > 25
break ; 中斷循環

3九、如何跳過本次循環?
if a_index < 20
continue ; 跳過本次循環,開始一次新的循環

40、如何使使腳本等待指定時間?
Sleep,時間 單位爲毫秒

4一、如進行數學運算,使用什麼符來把表達式運算的結果賦予某變量?
使用冒號等號符。如:NetPrice := Price * (1 - Discount/100)

4二、i := i+1 的簡化寫法是什麼?
i + =1

4三、如何獲取指定區間的隨機數?
Random, 輸出變量 [, 最小值, 最大值]

4四、如何從指定文本中讀取指定行?
FileReadLine, 輸出變量, 文件名, 行數

4五、如何判斷文本超出邊界?
ErrorLevel 是命令內置的一個變量,當讀取文件超出邊界時將被賦值爲1.

4六、ErrorLevel 爲0和1時通常表明什麼?
通常狀況下,爲0表明操做成功,爲1,表明操做失敗。

4七、通常狀況下,編寫彈出式菜單代碼的順序是什麼?
一、先定義子菜單項;二、編寫菜單項;三、編寫令菜單顯示的代碼;四、編寫刪除代碼;五、編寫響應代碼。

4八、如何添加子菜單?
Menu,add,子菜單項,:子菜單變量如:menu,mymenu,add,經常使用程序,:amenu

4九、用來在彈出式菜單中顯示一條分割線的代碼是?
Menu, MenuName, add

50、正常菜單項的代碼是?
Menu, MenuName, add,菜單項,響應標誌

5一、響應代碼的格式是?
響應標誌:
響應代碼……
return

5二、形如:Menu,amenu,add,txt 的代碼是什麼意思?
它實際上是Menu,amenu,add,txt,txt 的一種簡寫,表明菜單項和響應標誌

5三、在指定座標處顯示菜單項的代碼是?
Menu,MenuName,show,X座標,Y座標 如省略座標,則在鼠標當前位置顯示菜單項。

5四、如何指定顯示菜單的背景色?
Menu,MenuName,color,顏色代碼

5五、刪除全部菜單的代碼是什麼?有什麼做用?
Menu,mymenu,deleteall
若是沒有這句代碼,代碼中分割線會在菜單重顯時翻倍。如無分割線,可免

5六、重啓、關閉、註銷系統的指令是什麼?
Shutdown 後跟0爲註銷1爲關機,2爲重啓,4爲強制關閉 8爲關閉關閉電源

5七、隱藏腳本圖標有幾種方法?
Menu , tray , noicon 或者#NoTrayIcon

5八、顯示腳本圖標的代碼?
Menu , tray , icon

5九、腳本圖標的氣泡提示如何顯示?
Menu , tray , tip , 我本身的腳本

60、如何設置腳本的圖標?
Menu , tray , icon , %systemroot%\system32\shell32.dll ,22或者Menu , tray , icon , e:\ico\1.ico

6一、如何利用快捷鍵退出腳本?
#x::ExitApp

6二、如何移除托盤圖標的全部標準菜單項?
Menu , tray , NoStandard

6三、如何插入托盤圖標菜單?
Menu , tray , add , myitem

6四、如何顯示托盤圖標的標準菜單項?
Menu , tray , standard

6五、在托盤圖標顯示一個二級菜單代碼如何表示?
menu,mymenu,add,boke
menu,mymenu,add,luntan
menu,tray,add,相關網站,:mymenu
Return 注意:響應標誌後是 :不是::

6六、如何使非熱鍵類的腳本持久運行?
#Persistent

6七、顯示一個標準的文件選擇對話框的代碼爲?
FileSelectFile, OutputVar [, Options, RootDir, Prompt, Filter]
Option 參數如被省略,則爲單選。M 多選,M後容許隨意跟隨一個數字。S: 顯示保存對話框。數字爲通常爲3,即文件及路徑必須存在。Filter 參數格式如:Example: Audio (*.wav; *.mp2; *.mp3)

6八、FileSelectFile命令如用戶選擇了多個文件,輸出變量如何分割?
輸出變量用(`n)字符分割。第一個參數爲路徑,隨後緊跟選定的各個文件名。
if files =
{
MsgBox, 用戶放棄選擇。
}
Loop, parse, files, `n
{
if a_index = 1
mypath = %A_LoopField%
else
{
runwait, %mypath%\%A_LoopField%
}
}
return

6九、運行並等待程序完成的指令是?
runwait

70、從某字符串中逐次分解出一個個的子串。
Loop, Parse , 某字符串 , 用於分割的特徵變量

7一、用對話框顯示音量遞增10%?
MsgBox, 音量遞增10`%

7二、使靜音或者取消靜音狀態?
SoundSet, +1, , mute 或者Send,{Volume_Mute}

7三、使主音量提高(下降)10%?
SoundSet ,+(-)10, MASTER

7四、使音量中波形音量提高(下降)10%?
SoundSet , +(-)10, WAVE

7五、#NoEnv 做用是什麼?
主要是爲了與之後兼容,也能夠改善性能

7六、如何對某些多媒體功能鍵重定義?
建個腳本內容爲#InstallKeybdHook並執行,雙擊圖標,窗口中選擇菜單 view 第四項 key 開頭的而後按多媒體鍵,f5刷新,看第二列內容好比a,顯示的值是01e 。使用時就是sc01e::msgbox

7七、顯示器的寬度和高度用那兩個常數表示?
A_ScreenWidth 和 A_ScreenHeight

7八、如何移動鼠標光標?
MouseMove, X, Y [, Speed, R] Speed 參數的範圍在 0 (最快) to 100 (最慢)之間取值.
R 參數 若是有此參數,則鼠標移動將以當前位置爲基準,進行 x 和 y 像素的位移.

7九、如何獲取當前鼠標座標?
MouseGetPos, X, Y

80、MouseGetPos還有什麼做用?
MouseGetPos 指令用來返回鼠標的當前位置,以及鼠標當前懸停的窗口和控件。格式爲:
MouseGetPos, [OutputVarX, OutputVarY, OutputVarWin, OutputVarControl
OutputVarWin 這個變量存儲了當前鼠標懸停的窗口的ID ,即便窗口未處於激活狀態。OutputVarControl 這個變量存儲了當前鼠標懸停的控件的名稱(ClassNN)。

8一、MouseGetPos 命令在最後有一、二、3參數是什麼意思?
1:在多文檔界面程序(例如 SysEdit 或 TextPadThis )中能夠準確的獲取激活或置頂的子窗口信息。對其它狀況就不那麼準確了。2 :在 OutputVarControl 中存儲 control's HWND/窗口句柄。3 :同時包含 1 和 2 的功能。

8二、如何在屏幕上創建一個緊隨鼠標的彈出式窗口?
ToolTip [, Text, X, Y]

8三、如何得到當前位置像素的顏色RGB的值?
PixelGetColor, OutputVar, X, Y [, RGB]

8四、如何在系統托盤創建一個彈出式窗口?
TrayTip [, Title, Text, Seconds, Options] 注意senconds的取值通常在10到30之間

8五、如何用指定時間間隔自動或重複激發某子程序?
SetTimer , Label , 時間間隔

8六、關閉某進程的代碼是?
Process,close,autohotkey.exe

8七、如何檢索鼠標所在位置的信息?
MouseGetPos , , , id , control ; 獲得鼠標所在位置窗口的id及控件名稱
WinGetTitle, title, ahk_id %id% ;檢索到相應id對應窗口的標題
WinGetClass, class, ahk_id %id% ;檢索到相應id對應窗口的類名

8八、如何獲得當天的日期?
dd = %A_YYYY%年%A_MM%月%A_DD%日

8九、如何給剪貼板賦值?
clipboard = %var%

90、當前桌面那個常數表示?
%A_Desktop%

9一、如何設置鼠標速度?
SetDefaultMouseSpeed 30; 默認的是2 ,能夠從0調到100,越小越快

9二、如何設置鼠標動做結束以後的延遲?
SetMouseDelay 30; 默認是10毫秒

9三、如何實現ctrl+鼠標雙擊?
send ^{click 100,200 2}

9四、使滾輪向上滾2次?
click wheelup 2 ; wheelup 能夠寫成WU

9五、滾輪向下滾一次?
click wheeldown ;wheeldown 能夠簡化爲WD

9六、使鼠標滾輪向下滾5次有幾種方法?
Click , WD,5或
loop 5
click WD

9七、當前位置鼠標單擊左鍵
click ;
right 右鍵,left左鍵(默承認省略),middle 中鍵

9八、當前位置鼠標雙擊左鍵?
click 2

9九、移動鼠標到30,40?
click 30 , 40 , 0

100、點擊鼠標右鍵的代碼如何編寫?
Click , 100 , 200 , right

10一、若是鼠標點擊的座標是動態的如何表達?
Click %x% %y%

10二、拖動某圖標?
click 30,40 down
click 50,60 up

10三、如何設置一個進度條?
Progress , %i% , 進度條下文本 , 進度條上文本 , 標題

10四、如何建立快捷方式?
FileCreateShortcut, 目標文件, 快捷方式名 [, 工做目錄, 用空格分開的參數, 描述, 圖標, 快捷鍵, 圖標標號, 運行狀態]
注意:只需指定單個按鍵,全部的快捷鍵被指定爲 CTRL+ALT + 快捷鍵,若是給該參數指定 B,將會產生一個 CTRL-ALT-B 的快捷鍵。運行狀態1 - 正常(默認)3 - 最大化7 - 最小化

10五、空格鍵
{space}

10六、向左的箭頭
{Left}

10七、ctrl鍵?
^

10八、alt鍵?
!

10九、回車?
{enter}

1十、小鍵盤的1?
Numpad1

1十一、Windows鍵?
#

1十二、Shift鍵?
+

11三、邏輯與,把多個按鍵或鼠標組合成一個自定義鍵?
&

11四、一對按鍵中的左邊的按鍵?
< 如

11六、通配符,表示熱鍵被按下時,即便同時還有其餘的按鍵按下,依然有效?
*

11七、熱鍵被觸發後,動做不會被阻塞?
~

11八、禁用某鍵?
在::後緊跟return便可。如:RWin::return

11九、按鍵重映射?
a::b 如:RAlt::Rbutton 右alt映射爲鼠標右鍵Lbutton::return 鼠標左鍵被屏蔽

120、僅在notepad中交換a、b鍵?
#IfWinActive ahk_class Notepad
a::b ;
#IfWinActive ;

12一、鼠標定義?
LButton RButton MButton WheelDown WheelUp

12二、鍵盤定義?
Space Tab Enter (or Return) Escape (or Esc) Backspace (or BS) Delete (or Del) Insert (or Ins) Home End PgUp PgDn Up Down Left Right ScrollLock CapsLock NumLock Numlock ON Numlock OFF Numpad0 NumpadPgUp NumpadDot (.) NumpadDel NumpadDiv (/) NumpadDiv (/) NumpadMult (*) NumpadMult (*) NumpadAdd (+) NumpadAdd (+) NumpadSub (-) NumpadSub (-) NumpadEnter NumpadEnter 1 a A LWin Control (or Ctrl) Alt Shift F1 PrintScreen CtrlBreak Pause Break

12三、註釋
;跟在需註釋的語句以後,注意語句和分號之間至少要有一個空格。若是要註釋多個語句可使用

12四、函數?
Add(x, y)
{
return x + y ; "Return" expects an expression.
}
函數調用時,變量的後面使用 := 例如:Var := Add(2, 3) ;
因爲一個函數調用就是一個表達式,因此函數的參數列表裏面的變量前面不能加百分號「%」,相反的,字符串要使用引號。當一個命令的參數調用函數的時候,若是命令的參數不支持表達式,就必須使用百分號「%」,如:
MsgBox % "The answer is: " Add(3, 2)

12五、若是要想在熱字符串替換後加上空格?
在語句的後邊加上 `,:*:btw::By the way `

12六、彈出光驅
Drive, Eject,, 0

12七、收回光驅
Drive, Eject,, 1

12八、使窗口透明,值在1-255之間?
WinSet, Transparent, 100,個人電腦

12九、建立或更新啓動界面?
SplashImage,d:\1.jpg,b fs18
Sleep,5000
b fs 18 能夠去除界面邊框。緣由不明

130、修改腳本以後,按住左鍵後按R從新載入腳本
~LButton & r::
reload
return

13一、打開/激活記事本
IfWinExist 無標題 - 記事本
{
WinActivate
}
Else
{
Run Notepad
WinWait 無標題 - 記事本
WinActivate
}

13二、隱藏任務欄 WinHide ahk_class Shell_TrayWnd
顯示任務欄 WinShow ahk_class Shell_TrayWnd

13三、如何強制單線程?
#SingleInstance force

13四、屏蔽Ctrl+Alt+Del?
Regwrite,REG_SZ,HKEY_LOCAL_MACHINE,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe, Debugger, Hotkey Disabled
解除屏蔽 RegDelete,HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe

13五、雙擊啓動A程序.再雙擊,自動關閉A程序.
ifexist, 程序窗口標題
winkill, 程序窗口標題
else
run, 程序文件路徑
return

13六、當前窗口始終置於頂層?
WinSet AlwaysOnTop, on, A

13七、關閉當前窗口置於頂層狀態?
WinSet AlwaysOnTop, off, A

13八、窗口還能夠用表示?
ahk_class class、ahk_pid %PID%、ahk_id %ID%

13九、音樂播放或暫停?
Send , {Media_Play_Pause}

140、音樂播放中止?
Send , {Media_Stop}

14一、播放上一首?
Send , {Media_Prev}

14二、播放下一首?
Send , {Media_Next}

14三、按下瀏覽器回退鍵?
Send , {BROWSER_BACK}

14四、按下瀏覽器 向前鍵?
Send , {BROWSER_FORWARD}

14五、按下瀏覽器刷新鍵?
Send , {BROWSER_REFRESH}

14六、按下瀏覽器中止鍵?
Send , {BROWSER_STOP}

14七、按下瀏覽器搜索鍵?
Send , {BROWSER_SEARCH}

14八、按下瀏覽器收藏鍵?
Send , {BROWSER_FAVORITES}

14九、按下瀏覽器主頁鍵?
Send , {BROWSER_HOME}

150、使靜音?
Send , {VOLUME_MUTE}

15一、下降音量?
Send , {VOLUME_DOWN}

15二、提高音量?
Send , {VOLUME_UP}

15三、打開郵件程序?
Send , {LAUNCH_MAIL}

15四、打開播放器?
Send , {LAUNCH_MEDIA}

15五、如何對字符串中某字符進行替換?
StringReplace,CodeString, CodeString, 被替換 , 替換, All

15六、鼠標光標的狀態用那個常數表示?
% A_Cursor %

15七、當前腳本的運行路徑用那個常數表示?
%A_WorkingDir%

15八、經常使用判斷語句運行失敗的代碼是?
if ErrorLevel
break

15九、如何令鼠標進行相對移動?
在Click命令後使用Rel或者Relative參數,如:Click , 100 , 55 , rel

160、如何模擬Shift + 點擊?
Send +{Click 100, 200}

16一、如何模擬Ctrl +右鍵點擊?
Send ^{Click 100, 200, right}

16二、退出或終止某個 loop循環用那個命令?
Break如:
loop{ ... if var > 25 break ... if var <= 5 continue}

16三、如何肯定是否刪除首位空格和Tab的設置?
判斷% A_AutoTrim% (On 或者Off )

16四、單個空格和單個Tab用哪一個常量表示?
% A_Space % 和 % A_Tab %

16五、"Var1 = %Var2%" 表達式中自動省略 Var2 中首尾的空格和Tab 用哪一個命令實現?
AutoTrim, On

16六、點擊或按住一個鼠標按鍵,或者滾動鼠標滾輪除了Click外還有哪一個?
MouseClick [, WhichButton , X, Y, ClickCount, Speed, D|U, R]

16七、鼠標滾輪:WU 向上滾動, WD 向下滾動滾輪,後續的 ClickCount 參數表示滾動滾輪的次數。ClickCount如省略,則默認點擊1 次。D = 按住鼠標按鍵不放;U = 釋放鼠標按鍵;R 相對移動

16八、Mouse 開頭的函數中WhichButton有那些選擇?
WhichButton :Left/左鍵,Right/右鍵,Middle/中鍵滾動

16九、Mouse 開頭的函數中Speed 有那些選擇?
Speed 鼠標移動的速度,從 0(最快)到 100(最慢)

170、點擊並按住指定的鼠標按鍵,移動鼠標到目標位置,釋放鼠標按鍵?
MouseClickDrag, WhichButton, X1, Y1, X2, Y2 [, Speed, R]
X1, 起始位置 X2, Y2 目標位置座標 R 相對移動

17一、WinWaitActive,ahk_class MSPaintApp,, 2中最後2表明什麼?
超時時間,秒爲單位

17二、ELSE後可跟什麼命令?
任何單個命令都能和一個ELSE命令在同一行。如其後擁有多行,那些行必須被括入大括號。可是若是隻有一行屬於一個IF或一個ELSE命令,那麼大括號是可選的。

17三、無條件地終止腳本用哪一個命令?
ExitApp 腳本將當即被終止,若是腳本有 OnExit 子程序,它將響應ExitApp而運行。
如:onexit,a
s::ExitApp
a:
msgbox,kk
Return

17四、如何刪除一個或多個文件?
FileDelete, FilePattern。FilePattern 單個文件的名稱或一個像C:\Temp\*.tmp這樣的通配符樣式。若是絕對路徑沒被指定,FilePattern 會被假設在 %A_WorkingDir% 。

17五、移除包含子文件夾和文件的整個文件夾?
FileRemoveDir,DirName

17六、如何移除只讀屬性
FileSetAttrib, -R, C:\My File.txt
+ 增長屬性- 取消屬性^ 設置增長取消開關R = 只讀A = 存檔S = 系統H = 隱藏N = 普通 O = 脫機 T = 臨時

17七、跳到指定的標籤而且繼續執行?
Gosub, Label 。Label 跳轉的標籤、熱鍵標籤 或者 熱字串標。Return腳本跳回Gosub下首個命令並繼續執行。Exit終止當前的線程。

17八、標籤能夠是變量嗎?
Label 能夠是一個 變量 如 %MyLabel%,若是Label不存在,將顯示一個錯誤對話框。

17九、哪一個函數能夠檢驗標籤是否存在?
IsLabel(標籤名) 如:
if IsLabel(VarContainingLabelName)
Gosub %VarContainingLabelName%

180、顯示一個輸入對話框,接受用戶輸入的數據?
InputBox, 輸出變量 [, 標題, 提示文本, HIDE, 寬度, 高度, 橫座標, 縱座標, 必須留空, Timeout, Default]
HIDE 若是這裏使用單詞 HIDE ,那麼用戶的輸入內容會被隱藏。這在輸入密碼的時候頗有用。Timeout 超時時間,單位是秒。Default 輸入對話框出現時默認出如今輸入框中的數據。

18一、檢查文件或文件夾或驅動器是否存在?
IfExist, FilePattern或者IfNotExist, FilePattern 如:
IfExist, D:\
MsgBox, 驅動器存在。

18二、從一個字符串的左邊或右邊開始提取必定數量的字符用那個命令?
左邊:StringLeft, OutputVar, InputVar, Count
右邊:StringRight, OutputVar, InputVar, Count
Count 須要提取的字符數量,OutputVar 能夠和 InputVar 相同。

18三、如何獲取字符串長度?
StringLen , OutputVar , InputVar InputVar 須要統計長度的字符串變量名。

18四、如何將某字符串中的英文字母所有轉換爲大寫或小寫?參數中的T有什麼做用?
小寫:StringLower, OutputVar, InputVar [, T]
大寫:StringUpper, OutputVar, InputVar [, T]
T 若是這個參數使用字母 T ,字符串將被轉換爲標題格式。

18五、如何判斷某字符串是否所有是大寫或小寫字母?
可使用「if var is [not] upper/lower」。

18六、如何從字符串中指定的位置返回一個或多個字符?
StringMid, OutputVar, InputVar, StartChar [, Count , L]
StartChar 提取的起始位置,Count如省略或留空,默認是一個足夠存儲全部字符的值。不然,該參數表示須要提取的字符數量,L從 StartChar 開始向左邊提取字符

18七、如何對字符串中指定的子字符串進行替換?
StringReplace, OutputVar, InputVar, SearchText [, ReplaceText, ReplaceAll ]
SearchText 被替換的文本,不區分大小寫。ReplaceText 替換的文本。ReplaceAll如省略,只有第一個匹配 SearchText 的子字符串會被替換。若是這個參數是 1 、A 或者 All ,則全部匹配的子字符串都將被替換。若是這個參數是 UseErrorLevel 將在ErrorLevel中存儲被替換的子字符串的數量

18八、如何在剪貼板中移除換行?
StringReplace, clipboard, clipboard, `r`n, , All

18九、如何從字符串的左邊或右邊移除指定數量的字符?
左邊:StringTrimLeft, OutputVar, InputVar, Count 右邊:StringTrimRight, OutputVar, InputVar, Count

190、寫入一個值到註冊表中用那個命令?
RegWrite, ValueType, RootKey, SubKey [, ValueName, Value]

19一、從註冊表中讀取一個值用那個命令?
RegRead, OutputVar, RootKey, SubKey [, ValueName]

19二、從註冊表中刪除一個子鍵或一個值用那個命令?
RegDelete, RootKey, SubKey [, ValueName]

19三、ValueType有那些可選項?
只能是 REG_SZ ,REG_EXPAND_SZ ,REG_MULTI_SZ ,REG_DWORD 或者 REG_BINARY

19四、RootKey 有那些可選項?
只能是HKEY_LOCAL_MACHINE 、HKEY_USERS 、HKEY_CURRENT_USER 、HKEY_CLASSES_ROOT 、HKEY_CURRENT_CONFIG 其中之一(或者它們的縮寫,例如 HKLM )。要訪問遠程註冊表,在前面加上電腦名和一個冒號,例如:\\workstation01:HKEY_LOCAL_MACHINE

19五、SubKey表明什麼含義?
子鍵的名字如 Software\SomeApplication。若是 SubKey 不存在,將會在它的父類之下自動建立。如留空,將把值直接寫入到 RootKey 中

19六、ValueName 表明什麼?
須要寫入值的項的名稱。若是留空或省略,默認修改的是 Subkey 的默認值,也就是在 RegEdit 中顯示爲「(Default)/默認」的值

19七、Value 表明什麼? 須要寫入的值。如省略,默認是一個空字符串,或 0

19八、IfEqual, var, value 等同於? if var = value

19九、IfNotEqual, var, value 等同於? if var <> value) (!= 能用來替代 <>)

200、IfGreater, var, value 等同於? if var > value

20一、IfGreaterOrEqual, var, value等同於? if var >= value

20二、IfLess, var, value 等同於? if var < value

20三、IfLessOrEqual, var, value 等同於? if var <= value

20四、If var 表明什麼? 若是變量的內容爲空或是 0 ,那麼它被認做 false。不然,將爲 true。

20五、檢查一個變量是否在兩個 values 之間用那個命令?
if var [not] between LowerBound and UpperBound

20六、如何檢查某變量是否存在於一個 values 列表內部?
if var [not] in value1,value2
if Done If ……if else ……if else 語句完畢

20七、如何使指定窗口最大化?
WinMaximize [, WinTitle, WinText, ExcludeTitle, ExcludeText]

20八、如某特定窗口沒有準確地對WinMaximize 作出反應怎麼辦?
PostMessage, 0x112, 0xF030,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF030 = SC_MAXIMIZE此命令僅運做在匹配的最前端窗口上

20九、用那個命令檢索目標窗口有輸入焦點的控件?
ControlGetFocus, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText]
OutputVar 存儲控件標識符的變量名稱,如 Button12。

2十、如何防止當前線程被其餘線程中斷?
Critical [, On | Off] 如參數被省略或是 On,則當前的線程不會被其餘線程中斷。如是Off,則可中斷。

2十一、如何取得謀控件的位置和大小?
ControlGetPos [, X, Y, Width, Height, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
X, Y 是控件左上角座標。如省略座標將不被儲存。Width/Height 是控件的高和寬。Control 控件的名稱/文本或 ClassNN (控件的類名和序號)

2十二、Edit命令有什麼做用?
Edit 命令使用關聯的編輯器打開當前腳本進行編輯,至關於托盤圖標菜單的"Edit This Script"命令。

21三、是否容許某腳本重複次運行?
#SingleInstance [force|ignore|off] 參數 FORCE 將跳過對話框,並自動地替換舊的實例,實際上同 Reload 命令類似。參數IGNORE 將跳過對話框,並讓舊的實例運行。單詞 OFF 容許多個腳本實例同時運行。如參數被省略,將顯示一個對話框,詢問是保持舊的實例仍是使用新的實例來替換它。

21四、#HotkeyInterval隨同 #MaxHotkeysPerInterval 一塊兒的做用是什麼?
指定 熱鍵 激活的速率,當超過這一速率時,將會顯示一個警告對話框。
格式爲:#HotkeyInterval Milliseconds 參數:Milliseconds 間隔的長度,以毫秒爲單位。

21五、哪一個命令用來等待匹配指定條件的窗口被關閉?
WinWaitClose [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]

21六、如何調用窗口菜單項?
WinMenuSelectItem, WinTitle, WinText, Menu [, SubMenu1, SubMenu2, SubMenu3, SubMenu4, SubMenu5, SubMenu6, ExcludeTitle, ExcludeText]

21七、在WinMenuSelectItem命令中Menu參數表明什麼?
Menu 是頂級菜單的名稱,例如 File、Edit等,SubMenu1 須要選擇的菜單的名稱或位置,SubMenu2 若是 SubMenu1 自己還有子菜單,那麼這個參數就是子菜單項的名稱或位置。以此類推。也可使用 1& 表示第一個菜單項,2&表示第二個菜單項。

21八、用那個命令強制關閉窗口?
WinKill [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText]

21九、WinKill命令中SecondsToWait參數有何含義?
若是省略或留空,命令徹底不會等待。若是使用 0 ,會等待 500ms 。不然,它會等待指定的時間(能夠包含小數點或者是一個 表達式 )來讓窗口完全關閉。

220、隱藏/顯示指定窗口的命令是?
WinHide/WinShow [, WinTitle, WinText, ExcludeTitle, ExcludeText]

22一、最小化匹指定窗口到任務欄的命令是?
WinMinimize [, WinTitle, WinText, ExcludeTitle, ExcludeText]

22二、若是某些窗口不能正確響應 WinMinimize ,能夠嘗試使用腳本?
PostMessage, 0x112, 0xF020,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND ,0xF020 = SC_MINIMIZE 這個命令只對匹配窗口中處於最前端的進行操做

22三、激活最底端的窗口的命令是?
WinActivateBottom [, WinTitle, WinText, ExcludeTitle, ExcludeText]

22四、關閉指定窗口的命令是?
WinClose [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText] 或者是PostMessage, 0x112, 0xF060,,,WinTitle, WinText ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

22五、等待指定窗口處於激活或未激活狀態的命令是?
WinWaitActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]
WinWaitNotActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]
Seconds 超時時間。留空表示無限等待。指定 0 等同於 0.5 。

22六、等待指定窗口出現的命令是?
WinWait [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]  

22七、改變指定窗口的標題的命令是?
WinSetTitle, NewTitle 或WinSetTitle, WinTitle, WinText, NewTitle [, ExcludeTitle, ExcludeText]
NewTitle 目標窗口的新標題。若是隻有此參數,默認是上一次匹配窗口 。

22八、最小化或還原全部窗口的命令是?
WinMinimizeAll / WinMinimizeAllUndo 這個命令等同於 Explore 的 Win-M 和 Win-D 快捷鍵。

22九、移動指定窗口的命令是?
WinMove, X, Y

230、移動窗口更改大小的命令是?
WinMove, WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText]

23一、還原指定窗口的命令是?
WinRestore [, WinTitle, WinText, ExcludeTitle, ExcludeText]

23二、若是某些窗口不能正確響應 WinRestore ,能夠嘗試使用的腳本爲?
PostMessage, 0x112, 0xF120,,, WinTitle, WinText ; 0x112 = WM_SYSCOMMAND ,0xF120 = SC_RESTORE

23三、匹配指定條件的窗口進行設置,如「總在最前」,以及透明度等使用那個命令?
WinSet, Attribute, Value [, WinTitle, WinText, ExcludeTitle, ExcludeText]

23四、WinSet中後緊跟AlwaysOnTop有什麼含義?
讓一個窗口處於置頂狀態。使用 ON 開啓設置,使用 OFF 關閉設置,使用 TOOGLE 切換設置。若是省略,默認是 TOOGLE。也可使用單詞 Topmost 替換 AlwaysOnTop。

23五、如何切換計算器的「總在最前」狀態?
WinSet, AlwaysOnTop, toggle, Calculator

23六、WinSet中後緊跟Bottom有什麼含義?
將一個窗口放到最底端,即全部窗口的下面。相似使用 Alt-Escape 快捷鍵。例如:
WinSet, Bottom,, WinTitle

23七、WinSet中後緊跟Top有什麼含義?
將一個窗口放到最前端而不進行激活。但多數狀況下系統都會自動激活它。

23八、WinSet中後緊跟Disable 或 Enable有什麼含義?
停用或啓用一個窗口。當一個窗口處於停用狀態的時候,用戶不能移動它或利用它的控件進行交互。另外,停用的窗口也不會出如今alt-tab 列表中。

23九、WinSet中後緊跟Redraw有什麼含義?
經過通知系統某個窗口區域須要重繪,來刷新一個窗口的界面和內容。

240、WinSet中後緊跟Style,N 或 ExStyle,N有什麼含義?
分別設置窗口的樣式或擴展樣式。若是 N 中的第一個字符是加號或減號,則窗口會增長或移除 N 中指定的樣式(可同時指定多個樣式,下同);若是第一個字符是符號「`」,窗口將對 N 中指定的樣式進行切換操做;若是第一個字符是數字,窗口原來的全部樣式將被覆蓋,完全變成 N 中指定的樣式。更改了一個窗口的樣式以後,可能使用命令 WinSet Redraw 重繪窗口

24一、移除當前激活窗口的標題欄?
WinSet, Style, -0xC00000, A

24二、將窗口添加到/移除於 alt-tab 列表中。
WinSet, ExStyle, ^0x80, WinTitle

24三、更改某窗口的形狀爲指定形狀?
WinSet, Region [, Options, WinTitle, ...]

24四、WinSet, Region後Options 參數留空有何做用?
窗口將恢復到原來的形狀

24五、WinSet, Region後Options 參數能夠指定那些參數?
請用空格分隔各個參數。
Wn:方形或橢圓形的寬度如:w200。 Hn:方形或橢圓形的高度。例如:h300
X-Y:X軸 和 Y軸 座標。如,200-0 E:將窗口形狀設置爲橢圓形。
R[w-h]:設置方形窗口的圓角。如,R30-30 ,如省略 w-h ,默認使用 30-30 。

24六、設置一個橢圓窗口的代碼如?
WinSet, Region, 50-0 W200 H250 E, WinTitle

24七、如何設置一個多邊形窗口?
若是同時指定了 W 和 H 參數,而且在 X-Y 參數中指定了多組座標,窗口的形狀將變成多邊形(每組座標以窗口左上角爲原點)。

例如,若是指定了 3 組座標,大多數狀況下窗口的形狀會變成三角形,具體的形狀取決於 3 組座標的順序。此外,在 Options 參數中也能夠加上單詞 Wind ,這將會使用一種彎曲的方式來決定多邊形的形狀。

24八、如何設置窗口的透明度?
WinSet, Transparent, N, WinTitle ;N 爲一個 0 到 255 的數字:0 表示徹底透明,255 表示徹底不透明。使用單詞 OFF 完全關閉窗口的透明效果。

24九、還有那種屬性設置也可讓窗口設置透明度?
Gui -Caption +ToolWindow.

250、設置任務欄的透明度?
WinSet, Transparent, 150, ahk_class Shell_TrayWnd

25一、如何使目標窗口中指定顏色的區域透明?
WinSet, TransColor, Color [N], WinTitle Color 參數能夠是一個顏色名稱或一個 RGB 值,能夠在顏色參數後跟一表示透明度的數字(0 - 255)。例如:WinSet, TransColor, EEAA99 150, WinTitle  若是用戶點擊窗口中的透明部分,點擊事件會「穿透」該窗口傳遞給下面的窗口。

25二、如何讓窗口中白色的部分透明?
WinSet, TransColor, White, Untitled - Notepad ;

25三、如何徹底關閉窗口的透明設置?
WinSet, Transparent, Off, WinTitle 或者 WinSet, TransColor, Off, WinTitle

25四、取消腳本的 SplashText 窗口的置頂狀態?
WinSet , AlwaysOnTop , Off , SplashText窗口的標題

25五、讓窗口只顯示指定的方形部分?
WinSet, Region, 50-0 W200 H250, WinTitle

25六、讓窗口有圓角的方形?
WinSet, Region, 50-0 W200 H250 R40-40, WinTitle

25七、倒三角形窗口?
WinSet, Region, 50-0 250-0 150-250, WinTitle

25八、將窗口恢復原狀?
WinSet, Region,, WinTitle

25九、在窗口中建立了一個方形的「洞」?
WinSet, Region, 0-0 300-0 300-300 0-300 0-0 100-100 200-100 200-200 100-200 100-100, WinTitle

260、返回符合指定條件的窗口的 uID,進程ID,進程名稱,或控件列表,包含全部符合指定條件的窗口的列表?
WinGet, OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText]

26一、WinGet中 Cmd參數處如留空或是ID有何含義?
返回窗口的 uID(HWND/句柄)。

26二、WinGet中 Cmd參數處爲IDLast有何含義?
當匹配的窗口超過一個的時候,它返回的是 最底端/最後使用 的窗口的 ID。

26三、WinGet中 Cmd參數處爲PID有何含義?
返回窗口的 進程ID(PID)。

26四、WinGet中 Cmd參數處爲ProcessName有何含義?
返回窗口所屬進程的進程名稱

26五、WinGet中 Cmd參數處爲Count有何含義?
返回符合指定條件的窗口數量(若是沒有匹配窗口則返回 0 )。要統計當前總窗口數,省略全部和 標題/文本 有關的參數。

26六、WinGet中 Cmd參數處爲List有何含義?
返回全部符合指定條件的窗口的 uID 。每一個 ID 由一個 數組元素 存儲,數組元素名從 OutputVar 開始,而 OutputVar 自己則存儲了數組的長度。例如,OutputVar 使用 MyArray ,有 2 個匹配窗口,則變量 MyArray1 存儲了第一個窗口的 ID ,變量MyArray2 存儲了第二個窗口的 ID

26七、WinGet中 Cmd參數處爲MinMax有何含義?
返回窗口的 最小化/最大化 狀態。返回下列數值之一:-1:窗口處於最小化狀態; 1:窗口處於最大化狀態。0:窗口既不處於最大化也不處於最小化狀態。

26八、WinGet中 Cmd參數處爲ControlList有何含義?
返回一個列表,包含窗口中全部控件的名稱。每一個控件的名稱由它的 class 名和序號(ClassNN)組成,除了最後一個控件的名稱以外,每一個名稱後都跟着一個換行符(`n)。要單獨遍歷全部的控件名稱,使用 parsing loop

26九、WinGet中 Cmd參數處爲ControlListHwnd何義?
功能同上,不一樣的是它返回的是控件的 窗口句柄(HWND)。

270、WinGet中 Cmd參數處爲Transparent有何含義?
返回窗口的透明度,OutputVar 存儲一個 0 到 255 之間的值,0 表示徹底透明,255 表示不透明。

27一、WinGet中 Cmd參數處爲TransColor有何含義?
返回窗口的透明色OutputVar 存儲一個 6 位的十六進制數,表示 RGB 顏色如 0x00CC99 。

27二、WinGet中 Cmd參數處爲Style 或 ExStyle何含義?
返回一個 8 位的十六進制數,表示窗口的樣式或擴展樣式。

27三、檢測一個窗口是否具備 WS_DISABLED 樣式?
WinGet, Style, Style, My Window Title
if (Style & 0x8000000) ; 0x8000000 表示 WS_DISABLED

27四、檢測一個窗口是否具備置頂樣式?
WinGet, ExStyle, ExStyle, My Window Title
if (ExStyle & 0x8) ; 0x8 表示 WS_EX_TOPMOST.

27五、激活當前窗口並得到位置、大小信息?
WinGetActiveStats, Title, Width, Height, X, Y 說明:Title 存儲當前激活窗口的標題。Width/Height 存儲當前激活窗口的寬或高。X, Y 存儲當前激活窗口左上角座標標。

27六、獲取當前激活窗口的標題?
WinGetActiveTitle, OutputVar

27七、如何獲得指定窗口的 class 名?
WinGetClass, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText] 

27八、如何獲得指定窗口的位置和大小?
WinGetPos [, X, Y, Width, Height, WinTitle, WinText, ExcludeTitle, ExcludeText]
X, Y 目標窗口左上角的座標。Width/Height 目標窗口的寬或高。如參數 WinTitle 使用「Program Manager」,該命令會返回桌面

27九、如何獲得指定窗口中的文本?
WinGetText, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText]
OutputVar 存儲獲取的文本。每一個獲取的文本元素以後都跟着一個回車換行符,在腳本中用 `r`n 表示。

280、如何獲得指定窗口的標題?
WinGetTitle, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText]

28一、如何激活指定窗口,將它置於最前端?
WinActivate [, WinTitle, WinText, ExcludeTitle, ExcludeText ]

28二、等待直到 剪貼板中含有數據爲止?
ClipWait [, 等待N秒, 1] 參數若省略,則等候時間無期限。

28三、如何加載某個外部文件中定義的 函數?
#Include 文件名或目錄名 或者 #IncludeAgain 文件名或目錄名
如:#Include C:\My Documents\Scripts\Utility Subroutines.ahk
#Include 會確保每一個文件僅被裝入一次,#IncludeAgain容許屢次裝入同一個文件。
給文件名參數前加上一個 *i 前綴和一個空格符後,程序將忽略加載裝入文件時發生的任何錯誤。例如:#Include *i SpecialOptions.ahk。ide

相關文章
相關標籤/搜索