加载中…
个人资料
一切皆虚幻
一切皆虚幻
  • 博客等级:
  • 博客积分:0
  • 博客访问:135
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

AUTOIT 基础知识(一)

(2014-10-16 21:43:29)
标签:

autoit

编程

学习

基础

入门

分类: AUTOIT编程学习

声明: 此贴转帖自www.autoitx.com

常见问题:

 

Q1 如何调试脚本?

MsgBox(0,"测试",$var)  

ConsoleWrite("var=" & $var & @CRLF)

 

Q2 操作CMD相关命令

 

Q2.1 如何运行DOS命令?

Run(@ComSpec & ' /c dir>d:\dir.txt',"", @SW_HIDE)

#include

$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%\system32\wpcap.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

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

_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=871&extra=page=1

 

 

 

Q6 如何操作注册表?

 

Q6.1 常用的注册表设置

 

;读取注册表指定的值

$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")

MsgBox(4096, "Program files 文件夹位于:", $var)

;创建一个主键、子键或值项。

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Test", "TestKey", "REG_SZ", "Hello this is a test")

;删除注册表指定的值 (注意:这里删除的是键项,而不是键值。)

RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE", "TestKey")

;其他还有RegEnumKey(),RegEnumVal(),详细应用请参考帮助。

 

 

Q6.2 注册表权限设置

 

http://www.autoitx.com/viewthrea ... hlight=Ȩ��

 

 

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

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有