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

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

思路有问题,应该如下做(只限御租搜于有标题栏的窗口)

1.找到窗口型祥,通过标题,如下:

HWND

myHwnd

/////////找到窗口的HDR

myHwnd=::FindWindow(

NULL,/*

class

name*/

"窗口名称"

//LPCTSTR

lpWindowName

//

window

name

)

if(myHwnd==NULL)

//"Cannot

Find")

2

//找到窗口镇历的位置及大小

::GetWindowRect(

myHwnd,

//

handle

to

window

mRect

//

client

coordinates

)

3.获得屏幕句柄

HDC

hdc

=

::GetDC(NULL)

4.通过mRect

和hdc

对界面进行 *** 作

易语言如何取指定败袭窗口句柄。

如下参考:

1.首先,创建一个新程序,如下图所示。

2.在程序中绘制一个“按钮”,两个编辑框,两个标签,然后改变相应的名称来识别。

3.左击以下:剪辑(只有在没有点击的情况下才点击),程序,模块应用回,察迅兄如下图。

4.在浏览窗口找到下载的超级模块位置,点击“超级模块”打开。

5.在模块下面会有一个额外的“超级模块”。

6.双击button1,在子例程“_button1_isclicked”下新建一个名为“I”的整数变量,然后编写如下代码:I=takehandle2(“记事本”)。编辑框1。Content=对文本的回答(I)。

7.写完以上代码,就可以得到“记事昌猛本”了。Exe”窗口句柄,然后,获取窗口标题!继续编码如下:编辑框2。内容=取窗口标题(取句柄2)(“记事本”)。Exe”))。

8.最后,调试并运行程序,就完成了。


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

原文地址:https://54852.com/yw/12505541.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存