autoit《FAQ大全》

thinkyoung發表於2013-12-03

常見問題:  Q1 如何除錯指令碼?

MsgBox(0,”測試”,$var) ConsoleWrite(“var=” & $var & @CRLF)

Q2 操作CMD相關命令 Q2.1 如何執行DOS命令?

Run(@ComSpec & ` /c dir>d:dir.txt`,””, @SW_HIDE)

#include <Process.au3> $rc = _RunDos(“start Http://www.autoitx.com“)

Q2.2 執行DOS命令如何連線AU3變數?

Local $var=”d:dir.txt” Run(@ComSpec & ` /c dir>”`&$var&`”`,””, @SW_HIDE)

Q2.3 執行DOS命令如何自動應答?(注意:這並不屬於AU3的問題,這裡附帶說一下。)

RunWait(@ComSpec & ` /c echo y|cacls %systemroot%system32wpcap.dll /d everyone`, @SystemDir, @SW_HIDE)

Q2.4 多層DOS命令如何用?如netsh,diskpart等。

$dns=”192.168.0.1″ RunWait(@ComSpec & ` /C netsh -c interface ip set dns 本地連線 source=static addr=”` & $dns &`”   register=PRIMARY `,””, @SW_HIDE )

Q2.5 執行DOS命令如何直接擷取回顯?

;注意:回顯擷取只支援Run而不是RunWait #include <Constants.au3> Opt(“MustDeclareVars”,1) _test() Func _test() Local $foo,$line,$lines $foo = Run(@ComSpec & ” /c sc query Alerter”, @SystemDir, @SW_HIDE, $STDOUT_CHILD) $lines = “” While 1 $line = StdoutRead($foo) If @error Then ExitLoop $lines &= $line Wend MsgBox(0,”test”,$lines) EndFunc

Q3 如何防止程式重複執行?

$g_szVersion = “test” If WinExists($g_szVersion) Then Exit AutoItWinSetTitle($g_szVersion)

#include <Misc.au3> _Singleton(“test”)

Q4 如何直接執行系統程式關聯的檔案?如[.txt, .msi, .pdf, .jpg, .lnk, .msc]等等!!! 

ShellExecute(“Notepad.exe”) ShellExecute(“test.txt”, “”, @ScriptDir, “edit”) ShellExecute(“http://www.autoitx.com”) ShellExecute(“C:boot.ini”, “”, “”, “print”) ShellExecute(“test.lnk”,””,@ScriptDir) ShellExecute(“gpedit.msc”, “”, “”, “open”, @SW_MAXIMIZE)

Q5 如何控制系統服務?

API的控制服務 _StartService()        開始服務 _StopService()         停止服務 _ServiceExists()       檢測服務 _ServiceRunning()      執行服務 _CreateService()       建立服務 _DeleteService()       刪除服務 WMI的控制服務 _ServStart()           開始服務 _ServStop()            停止服務 _ServDelete()          刪除服務 _ServGetDetails()      服務詳情 _ServGetState()        服務狀態 _ServListInstalled()   服務列表 _ServPause()           暫停服務 _ServResume()          服務改名 _SerSetState()         設定服務狀態 http://www.autoitx.com/viewthread.php?tid=176 連結已修正 — afan

Q6 如何操作登錄檔? Q6.1 常用的登錄檔設定

;讀取登錄檔指定的值 $var = RegRead(“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion”, “ProgramFilesDir”) MsgBox(4096, “Program files 資料夾位於:”, $var) ;建立一個主鍵、子鍵或值項。 RegWrite(“HKEY_LOCAL_MACHINESOFTWARETest”, “TestKey”, “REG_SZ”, “Hello this is a test”) ;刪除登錄檔指定的值 (注意:這裡刪除的是鍵項,而不是鍵值。) RegDelete(“HKEY_LOCAL_MACHINESOFTWARE”, “TestKey”) ;其他還有RegEnumKey(),RegEnumVal(),詳細應用請參考幫助。

Q6.2 登錄檔許可權設定

Q7 如何不重啟重新整理登錄檔馬上生效?

Do ProcessClose(“explorer.exe”) Until Not ProcessExists(“explorer.exe”) Run(“gpupdate /force”,””,@SW_HIDE)

 

;強烈推存應用這個 DllCall(“user32.dll”,”int”,”SendMessageTimeout”,”hwnd”,65535,”int”,26,”int”,0,”int”,0,”int”,0,”int”,1000,”str”,”dwResult”)

Q8 AU3編寫的程式如何帶引數執行?

If $cmdline[0] <> 0 Then $filename = $cmdline[1] MsgBox(4096, “測試”, `你輸入的命令列引數是 “` & $filename & `”`) Else MsgBox(64, “測試”, `請帶引數執行此程式`) EndIf

If StringInStr($CmdLineRaw, “/help”) Then MsgBox(64,”幫助”,”這是本程式的幫助說明”) EndIf

Q9 如何刪除指令碼程式自身?

;刪除指令碼程式自身 Run(@ComSpec&` /c ping 127.0.0.1 -n 3&del /q “`&@ScriptFullPath&`”`,@ScriptDir,@SW_HIDE) ;刪除指令碼所在目錄的一切東西 Run(@ComSpec&` /c ping 127.0.0.1 -n 3&rd /q/s “`&@ScriptDir&`”`,@ScriptDir,@SW_HIDE)

Q10 AU3如何實現加密字串和檔案校驗?

;RC4加密(AU3內建函式) #include <String.au3> Opt(“MustDeclareVars”, 1) Local $var ;加密字串 $var=_StringEncrypt(1,”sanhen”,@ComputerName,1) MsgBox(0,”test”,$var) ;解密字串 $var=_StringEncrypt(0,$var,@ComputerName,1) MsgBox(0,”test”,$var)

Q11 如何修改螢幕解析度/重新整理頻率/顏色深度?

Q12 如何在介面顯示GIF圖片?

Q12.1 AU3呼叫OBJ的一點點例子?

Q13 如何在介面上顯示SWF格式的檔案?

參考Q12.1的例子 或者通過IE物件來實現,請參考: http://www.autoitx.com/viewthread.php?tid=200&extra=page%3D1

Q14 如何控制攝像頭?

Q15 如何介面中呼叫皮膚?


相關文章