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
声明:Declare Function GetForegroundWindow Lib "user32" () As Integer
句柄=GetForegroundWindow()
这个是获得活动窗口的句柄。
API:
GetForegroundWindow 可以获取到有焦点的顶层窗口。
获取有焦点的子窗口只能用GetFocus,但是如果当前顶层窗口属于其他线程,GetFocus将返回NULL。没有好的办法解决,除非AttachThreadInput或者用钩子(HOOK)。
获取句柄不一定要用 FindWindow ,还可以枚举:
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Const GW_HWNDFIRST = 0
Private Const GW_HWNDNEXT = 2
Private Sub Command1_Click()
Dim lngHwnd As Long, ret As Long
Dim s As String 255
Dim sName As String
lngHwnd = GetWindow(Mehwnd, GW_HWNDFIRST)
Do While lngHwnd
ret = GetWindowText(lngHwnd, s, 255)
sName = Blank(s)
If InStr(sName, "记事本") <> 0 Then '这里“记事本”替换成程序标题相同的部分
'这里写 将句柄加入数组的相关代码
End If
lngHwnd = GetWindow(lngHwnd, GW_HWNDNEXT)
Loop
End Sub
Public Function Blank(ByVal szString As String) As String
Dim l As Integer
l = InStr(szString, Chr(0))
If l > 0 Then
Blank = Left(szString, l - 1)
Else
Blank = szString
End If
End Function
以上就是关于“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄全部的内容,包括:“VB”里面怎么用简单的办法枚举父窗口下所有的子窗口句柄、vb中如何获得一个窗口的句柄、VB获取窗口下,鼠标光标位置所在的控件句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)