VB 获取其他程序控件的句柄

VB 获取其他程序控件的句柄,第1张

一般是用钩子程序的。

比较复杂,只能说个大体思路,要花最少30分钟。分太少了。

API函数的声明就不说了。

先用findwindow找到窗体,用GetWindow和GetClassName获得其窗体内各对象的句柄,从而可以获得文本框的句柄。

最后用SendMessage函数想文本框发送文本。

tWnd = FindWindow(vbNullString, "窗口名")可以获得外部程序窗口的句柄twnd

bwnd = GetWindow(tWnd, GW_CHILD)可以获得该窗口子对象的集合句柄bwnd

Do Until bwnd = 0

GetClassName bwnd, sSave, 250

If InStr(1, UCase(sSave), "EDIT", vbTextCompare) <> 0 Then

editwnd = bwnd

Exit Do

End If

bwnd = GetWindow(bwnd, GW_HWNDNEXT)

Loop

以上代码可以读到该窗口中的第一个文本框的句柄editwnd

SendMessage editwnd, WM_SETTEXT, 6, "王小明"

以上代码向editwnd中写入“王小明”,6表示其长度。该方法写入时,文本框中原有内容全部覆盖。

我给你讲解API取句柄吧首先定义一个FindWindowA的API

如图1(图1)这个就是利于窗口的标题来获取API返回值就是句柄,如果你知道某个游戏那么标题则会知道,然后你可以这样定义比如取QQ登入窗口的句柄_按钮2_被单击

局部变量

a,

整数型a

寻找窗口

(0,

“QQ用户登录”)

‘此时a

就获得了QQ的句柄

编辑框2内容

到文本

(a)如果不知道标题

则可以用

WindowFromPoint

API

用鼠标获取句柄,这个例子可以找我,在此我就不举例了,希望对你有用谢谢

例如:高级表格1取窗口句柄 ()

这样就取到 高级表格的窗口句柄(任何组件都可看作是一种窗口,这个取到的是高级表格句柄,不是表格所在窗口的句柄)

----------------------------------------

调用格式: 〈整数型〉 对象.取窗口句柄 () - 系统核心支持库->窗口

英文名称:GetHWnd

取出本窗口或窗口组件的窗口句柄(即HWND)。本命令为高级对象成员命令。

*** 作系统需求: Windows

你是说应用程序的窗口句柄吧?

HWND FindWindow(

LPCTSTR lpClassName, //窗口类名,可以用spy++获得

LPCTSTR lpWindowName //应用程序窗口名

);

或者

HWND FindWindowEx( HWND hwndParent,//父窗口句柄

HWND hwndChildAfter,//子窗口句柄

LPCTSTR lpszClass,//窗口类名

LPCTSTR lpszWindow//应用程序窗口名

);

具体的参见MSDN,我最近也在为这个头疼呢,哎

以上就是关于VB 获取其他程序控件的句柄全部的内容,包括:VB 获取其他程序控件的句柄、易语言如何取外部程序句柄、如何获取自己易语言程序窗口中某组件的句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9388663.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存