vb如何获取到窗口的句柄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb如何获取到窗口的句柄相关的知识,希望对你有一定的参考价值。

如果我用getwindow找到窗口的hdc属性,但是我想要它的hwnd,怎么办呢?
求教。。

参考技术A 获取句柄不一定要用 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(Me.hwnd, 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
参考技术B GetWindow怎么会找到hdc呢?他的返回值就是hwnd啊。
============
话说回来,如果你已知一个hdc想要找他的hwnd,用WindowFromDC函数。本回答被提问者采纳

以上是关于vb如何获取到窗口的句柄的主要内容,如果未能解决你的问题,请参考以下文章

vb中如何获得一个窗口的句柄

VB获取窗口句柄的详细教程

如何获取窗体中组件的句柄

VB 获得窗口句柄

知道一个窗体的句柄,如何获取这个窗体

VB中如何根据窗口的句柄结束他的进程?