VB 如何得到窗体内控件的句柄
我是想做个登陆器,我的想法是这样的先找到该窗体的句柄,再找出该窗体上面文本框的句柄从而再投递所要输入的内容,但不知道如何去找该窗体上文本框控件的句柄,请大侠帮帮忙,最好有...
我是想做个登陆器,我的想法是这样的
先找到该窗体的句柄,再找出该窗体上面文本框的句柄从而再投递所要输入的内容,但不知道如何去找该窗体上文本框控件的句柄,请大侠帮帮忙,最好有举倒贴代码的,我没分帮帮忙谢谢, 展开
先找到该窗体的句柄,再找出该窗体上面文本框的句柄从而再投递所要输入的内容,但不知道如何去找该窗体上文本框控件的句柄,请大侠帮帮忙,最好有举倒贴代码的,我没分帮帮忙谢谢, 展开
3个回答
展开全部
代码我不写了,太长了,具体思路如下:
整体是用WINDOWS API
1、findwindow 找到指定标题的窗口
如果这个窗口标题你不知道,那么一个一个遍历吧,或者枚举所有进程(进程名字你总是知道的吧?)然后在遍历整个进程中所有的窗口。
通过以上的方法,可以定位到窗口
2、GetWindow 到这个窗口里找控件
使用 GW_CHILD 常数,这样找到的就是这个窗体的子窗体(控件)的句柄了。
但是,有时候,控件是多层嵌套的,比如:窗口里有一个frame,frame里又嵌入一个frame,然后里面是一个textbox。
这样是很常见的,那么唯一的方案就是用 getwindow递归查找GW_CHILD,如果GW_CHILD返回的是0,那么就说明没有子窗体,通过递归查找,肯定就能找到你要的控件的句柄
3、发送消息
找到以后,getwindowtext、sendmessage就可以用了,WM_GETTEXT可以获得文本框文字,但是,不一定所有控件都响应这个消息,比如QQ密码框,这些加密的控件,除非你写驱动,否则恐怕很难去在这些控件上拦截、发送消息
整体是用WINDOWS API
1、findwindow 找到指定标题的窗口
如果这个窗口标题你不知道,那么一个一个遍历吧,或者枚举所有进程(进程名字你总是知道的吧?)然后在遍历整个进程中所有的窗口。
通过以上的方法,可以定位到窗口
2、GetWindow 到这个窗口里找控件
使用 GW_CHILD 常数,这样找到的就是这个窗体的子窗体(控件)的句柄了。
但是,有时候,控件是多层嵌套的,比如:窗口里有一个frame,frame里又嵌入一个frame,然后里面是一个textbox。
这样是很常见的,那么唯一的方案就是用 getwindow递归查找GW_CHILD,如果GW_CHILD返回的是0,那么就说明没有子窗体,通过递归查找,肯定就能找到你要的控件的句柄
3、发送消息
找到以后,getwindowtext、sendmessage就可以用了,WM_GETTEXT可以获得文本框文字,但是,不一定所有控件都响应这个消息,比如QQ密码框,这些加密的控件,除非你写驱动,否则恐怕很难去在这些控件上拦截、发送消息
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询