如果判断同一个窗口不同的按钮变化?
我最近在写个软件安装器,想实现软件安装过程中自动化,但是在没法判断这个软件的进度条是否走完,没法知道软件是否到最后一步的完成按钮出现,试了很多办法都不管用;
比如,自动安装QQ,前面的都可以实现自定义点选,但是最后的完成安装按钮不知道怎么判断,就没法操作;
很多软件在执行安装的过程中都是标题不变,比如Firefox在现在安装,搜狗输入法安装等
帮助文件里面都是判断窗口的,根据窗口标题,但是这个案例窗口标题从始至终都不变…
求助
如果判断同一个窗口不同的按钮变化?
我最近在写个软件安装器,想实现软件安装过程中自动化,但是在没法判断这个软件的进度条是否走完,没法知道软件是否到最后一步的完成按钮出现,试了很多办法都不管用;
比如,自动安装QQ,前面的都可以实现自定义点选,但是最后的完成安装按钮不知道怎么判断,就没法操作;
很多软件在执行安装的过程中都是标题不变,比如Firefox在现在安装,搜狗输入法安装等
不过其实用 Chocolatey 算了,虽然没有 QQ ,但是有 Tim(反正我也不用 QQ。
Firefox 这种国际知名软件当然也有了
知乎一下也有人讲解如何用命令行方式安装 QQ。
控件是否标准都不好说,就算搞定了一个,下一个可能也是不同的情况。你这是在找兼容所有控件的方法……且不说是否存在,如果对方不按着标准使用,比如使用图片替代按钮。总之可能的意外太多了,只是你还没遇到,所以以为只是眼下这一个难关。
倒是图像识别可能一力破万法,如果能再加上 OCR 的话,啧啧。
但这样就能都解决么?当然不能,你永远猜不透他们做了什么,会在什么奇怪的地方恶心到你。
上面只是从问题出发讨论思路。如果讨论问题本身。那这可能是一个伪需求,你打算为多少电脑服务,适配多少软件?这个适配的成本可不低啊。(做出来好像还真有不小的商业价值?!但用 AHK 做……会累哭
然后那些大型企业怎么维护电脑,怎么装软件,难道几百上千台电脑也这么装么?这个问题绝不会是你第一个提出来,也不可能是这几年才出现,那么……是不是重复造轮子,是不是已经有了巍峨耸立的亭台楼阁,你没看到?
讨论技术别钻牛角尖,每个角度都认真思考一下,觉得走不通也许不是真的走不通,可能是站的不够高。
明路在哪里……路在脚下。说到路在脚下我就想到……算了,篇幅有限,直接开花。
继续补充一波吧,免得因为服务态度被投诉……
AHK 从设计之初就是简单快捷的解决小问题,使用 Windows 提供 Api,简单的语法,虽然没有 UI,但是用代码居然能把某些事情简单的拨动开关一样。比如映射按键。
是的 AHK 可以做很多复杂的事情。
但是几乎每种编程语言都可以替代其他语言去做 对方的事情,为什么最终还是有这么多种语言存在?而不是被某一种完全替代掉?因为每一种都有它最擅长的方面。不擅长的不是不能做,是很费力。
AHK 解决小问题很好用,但是随着复杂度的增加,它会显得越来越不好用。因为它就没打算被用来做大型软件啊。
好,你的需求并不是大型软件。但是 AHK 只是让我们可以简单地去操作 Windows 的 Api,实现一些简单的流程。这是它擅长的。而你要做的是让它去操作没有使用 Windows 控件的软件界面……我能不能踩着我的滑板鞋周游世界?也不是不可以,就是会很累吧。如果没有十分特别的理由,还是火车轮船大飞机吧。
毕竟,前面面临的不只是路远,也许有高山,也许有河流,能过去吗?都能过去,但是每遇到一种情况就找对应的方法,未必值得。要不我们还是火车轮船大飞机吧。
AHK 就是个小脚本。滑板鞋,在平坦的地面上,让我们很畅快,很愉悦,别希望它太多。
外面的世界那么大。
不知道为什么忽然说这么多,可能是因为自己以前也没少钻牛角尖,而别人也没少这么劝我吧。
“我服……”本宝宝年轻的时候谁都不服!
(听起来很热血,现在喵喵喵喵,还是一只柔弱的小猫咪呀~
说一下你的蠢事,让我们乐一下
理论上说,方向没错。
然而现实不按着理论发展。
然后你拿着按理论设计的工具问我怎么对付不按理论发展的现实……
我他喵也说不清谁对谁错啊,要不你俩打一架,谁赢了算谁的。
我真心期待着你打赢现实,因为这是理想主义者的又一次胜利!(前一个倒下的好像是个戴眼镜的胖子
其实我也想说包管理器来着……包管理器是真的好用
顺便这老鼠怎么还无端六学的,大 势 所 趋 不 可 避 , 呼 伦 贝 尔 大 草 原
每一只猪没抑制住
说到猪……
我差不多快摸索到了
谁说去咸阳就得走秦直道?
丝绸之路总要有人走第一遭的
你怎么知道戴眼镜的胖子不会来个鲤鱼打挺?
祝你成功适配各种软件,加油~我看好你!
别啊,在聊会,我是虚心求教来了
If WinExist("无标题 - 记事本")
{
WinActivate,无标题 - 记事本
Sleep,5000
!o
Send,aa
}
else
{
MsgBox,0,,窗口不存在
}
我用这个案例测试,sleep和alt+o都不执行,但send会执行,这是什么情况?
我用
;ControlSend,button1,腾讯QQ安装向导,安装QQ浏览器
ControlClick,x120 y239,腾讯QQ安装向导,安装QQ浏览器
鼠标也不动,我已经用管理员运行这个编辑器了
我不会啊……
我曾经想用 VBS 征服世界,直到我面临起床的难题
哥们搞定了,
快,打钱
Loop,30
{
Sleep,3000
If WinExist("腾讯QQ安装向导")
{
WinActivate,腾讯QQ安装向导
Sleep,1000
MouseClick,left,282,357
}
else
{
break
}
}
真赞!
建议换个电脑(不同分辨率,不同缩放比)试试
至于给我打钱……不要不要,怎么能这样呢,你也太客气了,我二维码在论坛就有,你别找了,我估计你也找不到,找到也不会扫的,扫了也不可能真付款啊,意思意思得啦,三百五百的,太少了你也拿不出手不是呢。
我知道你怀疑我那个坐标,但这事我老早就考虑到前面了,相对值(relative)
给你打钱让你积攒蛋白质然后出去挥洒?
也是,不挥洒就没现在这烦恼了。唉,年轻啊,冲动啊。害的我这老身板还得起早贪黑苦口婆心的解释……
我觉得你骨骼惊奇,思维活跃,口齿伶俐,我发了一个东北题材的剧本,你适合里面的主角,匹配度简直量身定做,叫<<老瘪犊子>>有没有兴趣?