【请问】各位老师,在下有一个关于获取窗口句柄的有关问题
【请教】各位老师,在下有一个关于获取窗口句柄的问题
首先,我说明一下这个问题产生的过程。
过程:
我本来的目的是想要监控一个外部软件里面label的text,如果这个label.text="信息:需要清理",那么我做的软件就会向CCleaner要求清理。
我的思路是这样的:
1、通过进程名获取进程pid(因为对象窗口的标题会变,所以不通过窗口标题操作)
2、根据进程pid获取窗口句柄(正在苦恼的)
3、遍历窗口里面的控件,如果object.text存在“信息”,那么我就会监控这个控件的text(利用timer)。(以前没试过,准备尝试)
4、如果text="信息:需要清理",那么我就重复1、2的步骤,然后遍历控件,找到一个控件的text="运行清理器(R)",然后点击他。
思路路上(有些操作以前没有尝试过,所以思路上有可能出现问题)
接着,我说一下我的查找资料的经历
经历:
一开始,我通过百度进行搜寻相关的资料,找到一些。我把那些资料上的内容迁移到我的代码里面去,并且进行修改和调试,但是依然是失败的。几番折磨,耐心大损。
最后,希望各位老师能帮助一下,在下不胜感激!(b(^o^)d)
------解决方案--------------------
首先搞清楚你要监控的label是什么,不同开发 语言的label不一样,有的没有句柄,你怎么找,有的不是text属性是caption属性,你怎么知道
------解决方案--------------------
你先用spy++看一下有没有这个句柄,类名叫什么
知道了进程句柄有api可以抓main window句柄的(不过我忘了是什么,你可以去找找)
还有process类自带这个功能
------解决方案--------------------
PS:对于程序问题,最好举出你现在遇到的,而又解决不了的,理论这东西!!!
看例子,讲解,通俗易懂!
------解决方案--------------------
做过一个迅雷自动登录,说下自己的看法。可以考虑定位软件坐标截图识别文字,然后根据识别的文字,模拟点击软件界面处理按钮位置。当然最好的方法还是得到具体控件,仅供参考。
------解决方案--------------------
你现在卡在哪一步?思路没什么问题。
------解决方案--------------------
http://www.cnblogs.com/qiuyi21/articles/1302732.html
http://support.microsoft.com/kb/242308/zh-cn
所以说这个东西是有api可以实现的,你网上随便找一下就有了。
还有不用api可以用process类,process实例有个属性叫mainwindow出来就是主窗口的handle
首先,我说明一下这个问题产生的过程。
过程:
我本来的目的是想要监控一个外部软件里面label的text,如果这个label.text="信息:需要清理",那么我做的软件就会向CCleaner要求清理。
我的思路是这样的:
1、通过进程名获取进程pid(因为对象窗口的标题会变,所以不通过窗口标题操作)
2、根据进程pid获取窗口句柄(正在苦恼的)
3、遍历窗口里面的控件,如果object.text存在“信息”,那么我就会监控这个控件的text(利用timer)。(以前没试过,准备尝试)
4、如果text="信息:需要清理",那么我就重复1、2的步骤,然后遍历控件,找到一个控件的text="运行清理器(R)",然后点击他。
思路路上(有些操作以前没有尝试过,所以思路上有可能出现问题)
接着,我说一下我的查找资料的经历
经历:
一开始,我通过百度进行搜寻相关的资料,找到一些。我把那些资料上的内容迁移到我的代码里面去,并且进行修改和调试,但是依然是失败的。几番折磨,耐心大损。
最后,希望各位老师能帮助一下,在下不胜感激!(b(^o^)d)
------解决方案--------------------
首先搞清楚你要监控的label是什么,不同开发 语言的label不一样,有的没有句柄,你怎么找,有的不是text属性是caption属性,你怎么知道
------解决方案--------------------
你先用spy++看一下有没有这个句柄,类名叫什么
知道了进程句柄有api可以抓main window句柄的(不过我忘了是什么,你可以去找找)
还有process类自带这个功能
------解决方案--------------------
PS:对于程序问题,最好举出你现在遇到的,而又解决不了的,理论这东西!!!
看例子,讲解,通俗易懂!
------解决方案--------------------
做过一个迅雷自动登录,说下自己的看法。可以考虑定位软件坐标截图识别文字,然后根据识别的文字,模拟点击软件界面处理按钮位置。当然最好的方法还是得到具体控件,仅供参考。
------解决方案--------------------
你现在卡在哪一步?思路没什么问题。
------解决方案--------------------
你现在卡在哪一步?思路没什么问题。
我现在卡在如何通过进程Pid获取窗口句柄
http://www.cnblogs.com/qiuyi21/articles/1302732.html
http://support.microsoft.com/kb/242308/zh-cn
所以说这个东西是有api可以实现的,你网上随便找一下就有了。
还有不用api可以用process类,process实例有个属性叫mainwindow出来就是主窗口的handle