如何判断窗口按钮?


#1

如果判断同一个窗口不同的按钮变化? 我最近在写个软件安装器,想实现软件安装过程中自动化,但是在没法判断这个软件的进度条是否走完,没法知道软件是否到最后一步的完成按钮出现,试了很多办法都不管用; 比如,自动安装QQ,前面的都可以实现自定义点选,但是最后的完成安装按钮不知道怎么判断,就没法操作; 很多软件在执行安装的过程中都是标题不变,比如Firefox在现在安装,搜狗输入法安装等

帮助文件里面都是判断窗口的,根据窗口标题,但是这个案例窗口标题从始至终都不变… 求助


#2

窗口控件什么的太麻烦就换个思路好了

试试这样行不?

https://wyagd001.github.io/zh-cn/docs/commands/ImageSearch.htm


#3

不过其实用 Chocolatey 算了,虽然没有 QQ ,但是有 Tim(反正我也不用 QQ。

Firefox 这种国际知名软件当然也有了


#4

知乎一下也有人讲解如何用命令行方式安装 QQ。


#5

还有没有比这个更靠谱的办法?高手 命令行安装只适用于部分软件,而且像Adobe,Autodesk这类的命令就不太方便,所以我想还是用AHK模拟人来完成自动化 还有个重点就是国内的软件安装和卸载都比较操蛋,坑多,所以才有这个软件安装器的想法 我写了while循环,等待这个text出现,不知道是写法不对还是这个想法不对 在给指条明路吧


#6

控件是否标准都不好说,就算搞定了一个,下一个可能也是不同的情况。你这是在找兼容所有控件的方法……且不说是否存在,如果对方不按着标准使用,比如使用图片替代按钮。总之可能的意外太多了,只是你还没遇到,所以以为只是眼下这一个难关。

倒是图像识别可能一力破万法,如果能再加上 OCR 的话,啧啧。

但这样就能都解决么?当然不能,你永远猜不透他们做了什么,会在什么奇怪的地方恶心到你。


上面只是从问题出发讨论思路。如果讨论问题本身。那这可能是一个伪需求,你打算为多少电脑服务,适配多少软件?这个适配的成本可不低啊。(做出来好像还真有不小的商业价值?!但用 AHK 做……会累哭

然后那些大型企业怎么维护电脑,怎么装软件,难道几百上千台电脑也这么装么?这个问题绝不会是你第一个提出来,也不可能是这几年才出现,那么……是不是重复造轮子,是不是已经有了巍峨耸立的亭台楼阁,你没看到?


讨论技术别钻牛角尖,每个角度都认真思考一下,觉得走不通也许不是真的走不通,可能是站的不够高。

明路在哪里……路在脚下。说到路在脚下我就想到……算了,篇幅有限,直接开花。


#7

你的意思是我这菜鸟一出手就到了AHK的边界? 不会吧,要是这样的话,范围也太小了 我曾尝试用易语言做,但是不会弄外部窗口 autoit如何? 难道只有万能的Python可行了?


#8

继续补充一波吧,免得因为服务态度被投诉……

AHK 从设计之初就是简单快捷的解决小问题,使用 Windows 提供 Api,简单的语法,虽然没有 UI,但是用代码居然能把某些事情简单的拨动开关一样。比如映射按键。

是的 AHK 可以做很多复杂的事情。

但是几乎每种编程语言都可以替代其他语言去做 对方的事情,为什么最终还是有这么多种语言存在?而不是被某一种完全替代掉?因为每一种都有它最擅长的方面。不擅长的不是不能做,是很费力。

AHK 解决小问题很好用,但是随着复杂度的增加,它会显得越来越不好用。因为它就没打算被用来做大型软件啊。

好,你的需求并不是大型软件。但是 AHK 只是让我们可以简单地去操作 Windows 的 Api,实现一些简单的流程。这是它擅长的。而你要做的是让它去操作没有使用 Windows 控件的软件界面……我能不能踩着我的滑板鞋周游世界?也不是不可以,就是会很累吧。如果没有十分特别的理由,还是火车轮船大飞机吧。

毕竟,前面面临的不只是路远,也许有高山,也许有河流,能过去吗?都能过去,但是每遇到一种情况就找对应的方法,未必值得。要不我们还是火车轮船大飞机吧。

AHK 就是个小脚本。滑板鞋,在平坦的地面上,让我们很畅快,很愉悦,别希望它太多。

外面的世界那么大。


不知道为什么忽然说这么多,可能是因为自己以前也没少钻牛角尖,而别人也没少这么劝我吧。


#9

也有触动 想起了自己原先做的一些“蠢事” 说实话也希望当时有这么一个我服的人 语重心长地跟我说这些话


#10

“我服……”本宝宝年轻的时候谁都不服!

(听起来很热血,现在喵喵喵喵,还是一只柔弱的小猫咪呀~


#11

哥们的意思是我在在这件事情上找错了方向,用错了方法?

不应该啊,我一直以为我的机智和才华让我横眼一扫这个世界,从那稍纵即逝的瞬间便可明白这个世界的逻辑与繁华;

我还能跑偏?我什么时候跑偏过?

用自己的方式看待这个世界和用自己的方式寻找诗和远方不是清新脱俗特立而高标的人生吗?


#12

说一下你的蠢事,让我们乐一下:wink:


#13

理论上说,方向没错。

然而现实不按着理论发展。

然后你拿着按理论设计的工具问我怎么对付不按理论发展的现实……

我他喵也说不清谁对谁错啊,要不你俩打一架,谁赢了算谁的。

我真心期待着你打赢现实,因为这是理想主义者的又一次胜利!(前一个倒下的好像是个戴眼镜的胖子


#14

其实我也想说包管理器来着……包管理器是真的好用

顺便这老鼠怎么还无端六学的,大 势 所 趋 不 可 避 , 呼 伦 贝 尔 大 草 原


#15

每一只猪没抑制住

说到猪……


#16

我差不多快摸索到了

谁说去咸阳就得走秦直道?

丝绸之路总要有人走第一遭的

你怎么知道戴眼镜的胖子不会来个鲤鱼打挺?


#17

祝你成功适配各种软件,加油~我看好你!


#18

别啊,在聊会,我是虚心求教来了

If WinExist("无标题 - 记事本")
{
	WinActivate,无标题 - 记事本
	Sleep,5000
	!o
	Send,aa
}
else
{
	MsgBox,0,,窗口不存在
}

我用这个案例测试,sleep和alt+o都不执行,但send会执行,这是什么情况? 我用

;ControlSend,button1,腾讯QQ安装向导,安装QQ浏览器
ControlClick,x120 y239,腾讯QQ安装向导,安装QQ浏览器

鼠标也不动,我已经用管理员运行这个编辑器了


#19

我不会啊……

我曾经想用 VBS 征服世界,直到我面临起床的难题


#20

哥们搞定了,

快,打钱

Loop,30
{
	Sleep,3000
	If WinExist("腾讯QQ安装向导")
	{
	WinActivate,腾讯QQ安装向导
	Sleep,1000
	MouseClick,left,282,357
	}
	else
	{
		break
	}
}