VC如果得到其他程序窗口的控件句柄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC如果得到其他程序窗口的控件句柄相关的知识,希望对你有一定的参考价值。

问过一些朋友,说用GetDlgItem(),其实是不可以的,因为这个函数需要目标窗口的ID作为参数。我是要得到不是本程序本身窗口的控件句柄,那么我就没有控件的ID,所以不行!比如我要得到QQ登录窗口输入账号的ComboBox的句柄,该怎么做?请讲解+举例。

参考技术A 思路有问题,应该如下做(只限于有标题栏的窗口)
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
对界面进行操作

请问vb中如何查找程序里面的多个文本框(或其他控件)的句柄啊?

现在用findwindow可以查出程序的句柄,但是这个程序有很多的文本框,怎样能准确的查询每一个文本框的句柄啊,并且怎么确定和程序中文本框的对应关系啊!
谢谢牛A和牛C间徘徊朋友的回答,但是一个窗口有很多很多文本框,这样的确能查出句柄,但是怎么能做到准确定位那?能不能给个例子看看??谢谢

参考技术A 用findwindowex递归调用找出所有窗口内的控件,再用GetClassName根据要求找出类名

以上是关于VC如果得到其他程序窗口的控件句柄的主要内容,如果未能解决你的问题,请参考以下文章

c#获取窗口句柄后 如何遍历所有控件

VC获取自身窗口句柄

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

WPF的控件没有句柄,但是有啥其他间接方法获得WPF控件的句柄啊。

请问vb中如何查找程序里面的多个文本框(或其他控件)的句柄啊?