用户登录
用户注册

分享至

au3软件自动安装程 AU3脚本实现软件自动安装

  • 作者: Today感动
  • 来源: 51数据库
  • 2020-04-21

如果只是用于软件自动安装,那么下面这些足够了。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脚本实现软件自动安装

软件
前端设计
程序设计
Java相关