VB 如何得到窗体内控件的句柄

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:17:05
我是想做个登陆器,我的想法是这样的
先找到该窗体的句柄,再找出该窗体上面文本框的句柄从而再投递所要输入的内容,但不知道如何去找该窗体上文本框控件的句柄,请大侠帮帮忙,最好有举倒贴代码的,我没分帮帮忙谢谢,

代码我不写了,太长了,具体思路如下:

整体是用WINDOWS API

1、findwindow 找到指定标题的窗口

如果这个窗口标题你不知道,那么一个一个遍历吧,或者枚举所有进程(进程名字你总是知道的吧?)然后在遍历整个进程中所有的窗口。

通过以上的方法,可以定位到窗口

2、GetWindow 到这个窗口里找控件

使用 GW_CHILD 常数,这样找到的就是这个窗体的子窗体(控件)的句柄了。

但是,有时候,控件是多层嵌套的,比如:窗口里有一个frame,frame里又嵌入一个frame,然后里面是一个textbox。

这样是很常见的,那么唯一的方案就是用 getwindow递归查找GW_CHILD,如果GW_CHILD返回的是0,那么就说明没有子窗体,通过递归查找,肯定就能找到你要的控件的句柄

3、发送消息

找到以后,getwindowtext、sendmessage就可以用了,WM_GETTEXT可以获得文本框文字,但是,不一定所有控件都响应这个消息,比如QQ密码框,这些加密的控件,除非你写驱动,否则恐怕很难去在这些控件上拦截、发送消息

路过,等高手出现。不过没有分的话高手是不会出现的喔!

vb里面没有句柄的概念,知道窗体的名字直接.Show就行了。