delphi查找窗口句柄和类

delphi中怎么查找窗口的句柄啊,这个窗口的标题是变动的但是标题“abc”这3个字肯定含有。还有就是怎么查找一个窗口的类,我记得以前有个软件可以显示,不过忘了是什么软件... delphi中怎么查找窗口的句柄啊,这个窗口的标题是变动的但是标题“abc”这3个字肯定含有。还有就是怎么查找一个窗口的类,我记得以前有个软件可以显示,不过忘了是什么软件了各位高手指点一下,谢谢了 展开
 我来答
手机用户51754
2011-10-24 · TA获得超过127个赞
知道答主
回答量:180
采纳率:0%
帮助的人:102万
展开全部
我是用VC的,delphi不是很懂,不过API还是一样的,说说我的意见。

Findwindow()的第一个参数是表示类名的字符串,第二个参数是表示窗口标题的字符串,你的第一个参数设置错了,QQ主窗口的类是对话框,应该用"#32770"表示,你可以用Spy 查看的。第二个参数也不对,如果设置成nil,那么任意标题的"#32770"类的窗口都会匹配,而它返回的只是找到的第一个窗口的句柄,不一定是QQ。QQ主窗口的标题是空字符串。

但实际上,你即使用FindWindow("#32770","")找到了相应的句柄,它也不一定是QQ的。因为参数里没有任何QQ特有的信息,而系统中存在大量"#32770"的对话框,它们的标题也各种各样,很可能就有空字符串,而它返回的是找到的第一个窗口的句柄,不能保证一定是QQ。所以这个办法很差。较为可行的方法是枚举系统当前的所有进程,从中查找模块名为"QQ"的进程,从进程中查找属于该进程的窗口,当然也不排除存在其他的名为QQ的进程,但这个可能性应该比较小。

我曾经做过针对QQ的一个插件,这是做的过程中的一些体会。
侨光宇向晨
2020-03-16 · TA获得超过3854个赞
知道大有可为答主
回答量:3092
采纳率:33%
帮助的人:444万
展开全部
标题不断的变化
可以用GetWindowText;函数得到标题名,然后用pos;函数判断这个标题名是不是含有abc
至于类名可以用函数GetClassName;
不懂可以加我QQ
272399954
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式