如何获得另外一个应用程序中的控件句柄

如何获得另外一个应用程序中的控件句柄,第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表示其长度。该方法写入时,文本框中原有内容全部覆盖。

*** 作外部程序中的控件首选Controlxxx函数。

这里可以用ControlListView函数

帮助上有具体介绍的,带例子。

函数原型:

ControlListView ( "窗口标题", "窗口文本", 控件ID, "命令" [, 选项1 [, 选项2]] )

最后三个参数用下面这个形式:

"GetText", 项目, 子项目 ==>返回指定项目/子项目的文本.


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

原文地址: http://outofmemory.cn/yw/7841482.html

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

发表评论

登录后才能评论

评论列表(0条)

保存