如何通过句柄获取控件信息

如何通过句柄获取控件信息,第1张

先找到窗口的句柄,再来查找按钮的句柄,如果按钮有文本内容,那就好办,如果没有,那建议你利用SPY++先来察看一下按钮的类型,以此类型为查找参数多次调用FindWindowEx来查找,直到找到的的句柄和Spy++相同,那么这个按钮就找到了。

先申明api:

[DllImport("user32dll", EntryPoint = "SendMessage")]

internal static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder lParam);

最好再定义一个枚举:

internal enum WinMsgType

{

WM_GETTEXT = 0x000D,

}

然后相关代码如下:

const int bufferLen = 1024;

var buffer = new StringBuilder(bufferLen);

SendMessage(hWnd, WinMsgTypeWM_GETTEXT, 1024, buffer);//hWnd为控件句柄

return bufferToString();

思路就走错了,得到网页上的按钮不是判断句柄来的

比如得到这里的”我来回答”按钮

应该是这样做

得到网页的源代码,查找源代码中 value="提交回答"的按钮,这样才得到

示例代码如下

If WebBrowser1DocumentForms(Form_ID)(i)Value = " 查询 " Then _

WebBrowser1DocumentForms(Form_ID)(i)Click

用EnumChildWindows吧,要借助SPY++,分析控件ID和GeiWIndowLong(hwWndChild,GWL_ID)返回的iD,给指定的控件发送消息SendMessage,还有控件一般都是发送的是WM_COMMAND消息吧。 最后想说的是,如果你是想**什么密码之类的话,这种方法是行不通的,比如QQ这些,他们都装了个Hook过程,你做什么 消息都会被过滤吧。

以上就是关于如何通过句柄获取控件信息全部的内容,包括:如何通过句柄获取控件信息、谁用C#做过spy++的程序,小弟有点问题,想请大侠帮忙,怎么获取panel中控件中的内容,麻烦写具体点,、怎么得到网页内按钮的句柄,用SPY++只能看到浏览器句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9635175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存