如果只是用于软件自动安装,那么下面这些足够了。1)学会使用au3自带的窗口信息工具来捕获软件安装程序的窗口信息和控件信息。
2)学习并掌握以下几个函数的用法:
WinExists, WinActive, WinActivate, WinWaitActive —— 窗口操作
Sleep —— 延时操作
Send, ControlClick, ControlCommand, MouseClick —— 按钮/单选框/复选框 控件操作
ConsoleWrite, MsgBox —— 调试方法
如果想要能用于Win7/Vista带用户权限控制的OS,记得在脚本开头加 #RequireAdmin
3)学习并掌握条件判断语句(if)的结构,循环语句(while)的结构。
就这个软件来讲,控件信息没有,怎样写脚本?实现自动安装?
AU3脚本实现程序自动安装
用窗口信息工具识别控件属性,使用:
WinWait - 等待窗口出现
WinActivate - 激活窗口
ControlClick - 点击"下一步"或“完成”按钮更多
无法查看到按键信息 怎么点击你给我看的是“窗口”标签,而按钮信息对应的是“控件”那个标签。
或者你可以直接查看最后一个标签“综合”。所有的都在里面。
我找到答案了 谢谢你的回答
You're welcome.
AU3 倒计时安装软件,时间到了自动安装,可以直接点确定和取消
下面是一个示例,应该能满足你的要求:
#include<ButtonConstants.au3>#include<GUIConstantsEx.au3>
#include<StaticConstants.au3>
#include<WindowsConstants.au3>
#Include<Misc.au3>
_Singleton("倒计时Demo")
LocalConst$MaxTime=5;倒计时5秒
Local$count=$MaxTime
#Region###STARTKodaGUIsection###Form=C:\Users\19004358\Desktop\Form1.kxf
$Form1=GUICreate("您要安装此软件吗?",292,96,192,124)
$Label1=GUICtrlCreateLabel("秒后将自动安装",120,16,88,20)
GUICtrlSetFont(-1,10,400,0,"MSSansSerif")
$sTimer=GUICtrlCreateLabel($MaxTime,105,17,10,20)
GUICtrlSetFont(-1,10,400,0,"MSSansSerif")
GUICtrlSetColor(-1,0x0000ff)
$btnOk=GUICtrlCreateButton("确定",48,56,81,25)
$btnCancel=GUICtrlCreateButton("取消",176,56,73,25)
GUISetState(@SW_SHOW)
#EndRegion###ENDKodaGUIsection###
AdlibRegister("UpdateTimer",1000)
While1
If$count=0ThenExitLoop
$nMsg=GUIGetMsg()
Switch$nMsg
Case$btnOk
ExitLoop
Case$btnCancel,$GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
AdlibUnRegister("UpdateTimer")
GUIDelete($Form1)
AutoInstall()
#region以下为函数定义部分
FuncUpdateTimer()
$count-=1
GUICtrlSetData($sTimer,$count)
EndFunc
;自动安装函数,这里只是个用于演示的例子
FuncAutoInstall()
MsgBox(262144,"哈哈","自动安装已经在运行啦!",3)
EndFunc
#endregion
AU3软件自动安装怎么隐藏安装界面?
增加标志 @SW_HIDE
求助高手au3 ahk 如果主要用来自动安装软件的话哪个功能强点?
AU3和AHK其实差别并不大,语法基本都是类VB语法,有点C语言基础的话上手都很快的。
au3可以对隐藏窗口发送鼠标和键盘按键命令,而对非激活窗口的操作,通常也是需要先用代码去激活窗口然后再操作的。帮助中有句话:只有对于激活窗口的操作,才能抱有100%的可靠性。
au3中文论坛扩展的用户自定义函数(UDF)很丰富,自动安装只是au3的一个小用途。
不少公司的IT以及网管都用au3,因为有很多现成可用的函数库,并且不需要去关注其源码。
但同时也看到,一些商业化的软件里包含有AHK脚本,因为其开源,可定制程度高。
所以,如果你只是用于自动安装软件,个人建议学au3吧,并且要用AutoIt中文论坛(ACN)出品的汉化增强版au3。
如何使用au3改变软件自动安装脚本安装路径
脚本的我真不懂
Au3_编写软件自动安装脚本如何打包?打包后是否与软件本身体积一样大小?如下参数有问题么?
可以的
打包后的大小应该是大于软件本身体积的,因为编译时也还要将AutoIt解释器(AutoIt3.exe或AutoIt3_x64.exe)打包进去。更多
谢了!已经做好,但是有些软件的复选框文字没法用窗口工具提起,控件ID没有显示,没办法取消软件本身默认勾选的浏览器,特别是杀毒软件之类、搜狗输入。郁闷我下载的软件怎么都这样,知道是我水平有限,是否可以帮忙解决?
AutoIt自带的窗口信息工具有点弱,试试Spy++ Lite。
如果也不行,还有最后一条路,相对坐标方式,即通过MouseClick使用(窗口左上角坐标+控件相对窗口的坐标)来点击。
多谢指点!
不客气,窗口左上角坐标通过WinGetPos获得,应该是非常准确的,主要误差可能来源于控件相对窗口的坐标(如果窗口的控件布局跟随分辨率变化的话)。
难怪我只用了MouseClick,而且是用屏幕捕捉的方式,那个WinGetPos不会用也没有实例参考。用现在这个办法造成的误差相当大
帮助中是有例子的呀。比如下面这样:
Local $pos = WinGetPos("软件窗口标题")
这时,$pos[0] 就表示窗口左上角的X坐标;$pos[1]表示窗口左上角的Y坐标。
再分别加上控件中心位置相对窗口左上角的坐标(这个可以用屏幕截图软件获取),就可以得到了。
可以先用MouseMove试试,看鼠标是否能正确移动到预期的位置。成功后再改为MouseClick。
除非给整个软件的代码,效果是只用鼠标点击完成安装并不受分辨率的影响。对你来说是易如反掌,而我却是费时费力也没整明白,差点绝望了都....
这个。。。试试用Tab键能否在控件之间切换焦点吧
如果可行,用Send发送Tab键
加上以下函数已经得到决解
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
转载请注明出处51数据库 » au3软件自动安装程 AU3脚本实现软件自动安装
Today感动
