请教已知子窗口标题,却不能得到子窗口句柄
请问已知子窗口标题,却不能得到子窗口句柄
Dim lRet As Long
lRet = FindWindow(vbNullString, "XXXX软件 ")
MsgBox lRet
上面的代码取应用程序的标题,得到句柄是没有问题
但是要取另外一个子窗口的句柄,却得不到值,从次序上说这个子窗口是第四级,是通过一款摄像头在PictureBox1中播放的视频
主窗口------> PictureBox2-------> PicturBox1----> MVC_CAPTRUE
Dim lRet As Long
lRet = FindWindow(vbNullString, "MVC_CAPTRUE ")
MsgBox lRet
返回0 ,失败,取不到句柄值
现在我试的一些办法都不行
如FindWindowEx查询,这个没法用,因为要知道类名,我这个子窗口的类名都过spy++查询得到 "Afx:3f60000:22b:0:1900011:5a02f1 ",但是不停地变,一会这样,一会那样,所以很头疼,谁有好的方法救救我吧
------解决方案--------------------
世上无难事,只要肯登攀!
---------毛泽东
Declare Function FindWindowEx Lib "user32 " Alias "FindWindowExA " (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
hWnd1 ---------- Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 ---------- Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
lpsz1 ---------- String,欲搜索的类名。零表示忽略
lpsz2 ---------- String,欲搜索的类名。零表示忽略
我想,用findwindowex完全可以实现EnumChildWindows的功能
Dim lRet As Long
lRet = FindWindow(vbNullString, "XXXX软件 ")
MsgBox lRet
上面的代码取应用程序的标题,得到句柄是没有问题
但是要取另外一个子窗口的句柄,却得不到值,从次序上说这个子窗口是第四级,是通过一款摄像头在PictureBox1中播放的视频
主窗口------> PictureBox2-------> PicturBox1----> MVC_CAPTRUE
Dim lRet As Long
lRet = FindWindow(vbNullString, "MVC_CAPTRUE ")
MsgBox lRet
返回0 ,失败,取不到句柄值
现在我试的一些办法都不行
如FindWindowEx查询,这个没法用,因为要知道类名,我这个子窗口的类名都过spy++查询得到 "Afx:3f60000:22b:0:1900011:5a02f1 ",但是不停地变,一会这样,一会那样,所以很头疼,谁有好的方法救救我吧
------解决方案--------------------
世上无难事,只要肯登攀!
---------毛泽东
Declare Function FindWindowEx Lib "user32 " Alias "FindWindowExA " (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
hWnd1 ---------- Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 ---------- Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
lpsz1 ---------- String,欲搜索的类名。零表示忽略
lpsz2 ---------- String,欲搜索的类名。零表示忽略
我想,用findwindowex完全可以实现EnumChildWindows的功能