“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄

“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄,第1张

Private Sub Command1_Click()

Dim h&

Do

h = FindWindowEx(MehWnd, h, vbNullString, vbNullString)

If h <> 0 Then

List1AddItem h

End If

Loop Until h = 0

End Sub

参考代码:

-- VFP Code

#Define GW_HWNDNEXT 2

Declare Integer GetActiveWindow In user32

Declare Integer GetWindow In win32api Integer HWnd, Integer wFlag

Declare Integer GetWindowText In win32api Integer hand, String @ctitle, Integer ntitle

Declare Integer SetForegroundWindow In Win32api Integer

hCurrent=GetActiveWindow() &&从当前活动窗口开始

lnhCurrent=hCurrent

SetForegroundWindow(_ScreenHWnd) &&或ThisformHWnd

SetForegroundWindow(hCurrent) && vfp8 以下没有 HWnd

lcWinLists=""

Create Cursor t1 (WindowHWnd I,WindowTitle C(254))

Do While hCurrent>0

lcWinTitle=Space(255)

lnlength=GetWindowText(hCurrent,@lcWinTitle,Len(lcWinTitle))

lcWinTitle=Iif(lnlength>0,Strtran(Trim(lcWinTitle),Chr(0),""),"")

Insert Into t1 Values (hCurrent,lcWinTitle)

hCurrent=GetWindow(hCurrent,GW_HWNDNEXT) &&得到下一个窗口句柄

Enddo

SetForegroundWindow(lnhCurrent)

Select t1

Locate

Browse

Clear Dlls

用精易编程助手,窗口的探测功能,然后生成代码, 有窗口类名的有标题的,用模块的标题类名生成易语言代码就行了

取到了句柄就能控制任何软件,包括自动点击某软件上的按钮,任何部分, 坚视软件,启动软件的某流程

请用GetWindow函数

该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄。

函数原型:HWND GetWindow(HWND hWnd,UNIT nCmd);

hWnd:窗口句柄。要获得的窗口句柄是依据nCmd参数值相对于这个窗口的句柄。

nCmd:说明指定窗口与要获得句柄的窗口之间的关系。该参数值可以是下列之一:

GW_CHILD(&H5):如果指定窗口是父窗口,则获得的是在Z序顶端的子窗口的句柄,否则为NULL。函数仅检查指定父窗口的子窗口,不检查继承窗口。

GW_ENABLEDPOPUP(&H6):(WindowsNT 50)返回的句柄标识了属于指定窗口的处于使能状态d出式窗口(检索使用第一个由GW_HWNDNEXT 查找到的满足前述条件的窗口);如果无使能窗口,则获得的句柄与指定窗口相同。

GW_HWNDFIRST(&H0):返回的句柄标识了在Z序最高端的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在Z序最高端的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在z序最高端的顶层窗口:如果指定窗口是子窗口,则句柄标识了在Z序最高端的同属窗口。

GW_HWNDLAST(&H1):返回的句柄标识了在z序最低端的相同类型的窗口。如果指定窗口是最高端窗口,则该柄标识了在z序最低端的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在z序最低端的顶层窗口;如果指定窗口是子窗口,则句柄标识了在Z序最低端的同属窗口。

GW_HWNDNEXT(&H2):返回的句柄标识了在Z序中指定窗口下的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口下的最高端窗口:如果指定窗口是顶层窗口,则该句柄标识了在指定窗口下的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口下的同属窗口。

GW HWNDPREV(&H3):返回的句柄标识了在Z序中指定窗口上的相同类型的窗口。如果指定窗口是最高端窗口,则该句柄标识了在指定窗口上的最高端窗口;如果指定窗口是顶层窗口,则该句柄标识了在指定窗口上的顶层窗口;如果指定窗口是子窗口,则句柄标识了在指定窗口上的同属窗口。

GW_OWNER(&H4):返回的句柄标识了指定窗口的所有者窗口(如果存在)。GW_OWNER与GW_CHILD不是相对的参数,没有父窗口的含义,如果想得到父窗口请使用GetParent()。例如:例如有时对话框的控件的GW_OWNER,是不存在的。

返回值:如果函数成功,返回值为窗口句柄;如果与指定窗口有特定关系的窗口不存在,则返回值为NULL

以上是百科的内容,你也可以从msdn中查阅,不过内容是大致相同的

,不满意请追问

BOOL EnumChildWindows( HWND hWndParent, // handle to parent window WNDENUMPROC lpEnumFunc, // callback function LPARAM lParam // application-defined value );这个函数不是在网上有很多例子吗?看看不就行了。

以上就是关于“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄全部的内容,包括:“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄、VFP怎么遍历所有窗口、如何通过子句柄查找父句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9657322.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存