在VB中,如何通过FindWindow查找已知标题中的一部分文字的窗口的句柄
比如,我知道某一个窗口的标题包括“abc”,但是除了"abc"还有其他文字,我不知道,请问如何查找这个窗口的句柄呢另外,如果有第二个窗口也满足这个特性,我如何查找到第二个...
比如,我知道某一个窗口的标题包括“abc”,但是除了"abc"还有其他文字,我不知道,请问如何查找这个窗口的句柄呢
另外,如果有第二个窗口也满足这个特性,我如何查找到第二个窗口的句柄 展开
另外,如果有第二个窗口也满足这个特性,我如何查找到第二个窗口的句柄 展开
展开全部
您好,您可以参考以下代码:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
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 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
private sub getprocessname()
Dim lngDeskTopHandle As Long
Dim lngHand As Long
Dim strName As String * 255
dim a as long
lngDeskTopHandle = GetDesktopWindow()
lngHand = GetWindow(lngDeskTopHandle, GW_CHILD)
Do While lngHand <> 0
GetWindowText lngHand, strName, Len(strName)
lngHand = GetWindow(lngHand, GW_HWNDNEXT)
If Left$(strName, 1) <> vbNullChar Then
if instr(strname , "123") then
a = FindWindow(vbNullString, CStr(strName))'此处a即所需句柄,您可以在此处中断并获取该句柄,或将句柄数据写入数组以获取所有包含"123"的窗口句柄
end if
End If
Loop
如果本次回答对您有帮助,请您采纳以支持我们的发展,谢谢!!
追问
GW_CHILD
GW_HWNDNEXT
这2个常量好像没定义,是不是定义了就可以了,我测试不成功,发现的这个问题
追答
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
我对我的失误非常抱歉,由此带来的不便,请你理解,谢谢!
2014-07-31
展开全部
我也不知道怎么搞的我也等待 .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询