Private Sub Command1_Click()
Dim hwnd As Long
Dim str1 As String
hwnd = FindWindowEx(0, 0, TXGuiFoundation, vbNullString)
If hwnd = 0 Then
MsgBox "没有运行!"
Else
str1 = Space(50)
GetWindowText hwnd, str1, 50
str1 = Trim(str1)
If str1 = "***" Then
MsgBox "截获窗口!"
End If
End If
End Sub其中 *** 是窗口标题,qq2009的,用spy看的qq2009的类名是TXGuiFoundation,但运行提示“没有运行”,若改为"#32770",则没有任何反应。
应该怎么解决呢?
Dim hwnd As Long
Dim str1 As String
hwnd = FindWindowEx(0, 0, TXGuiFoundation, vbNullString)
If hwnd = 0 Then
MsgBox "没有运行!"
Else
str1 = Space(50)
GetWindowText hwnd, str1, 50
str1 = Trim(str1)
If str1 = "***" Then
MsgBox "截获窗口!"
End If
End If
End Sub其中 *** 是窗口标题,qq2009的,用spy看的qq2009的类名是TXGuiFoundation,但运行提示“没有运行”,若改为"#32770",则没有任何反应。
应该怎么解决呢?
用FindWindw
另外,QQ2009的主窗口和聊天窗口的类名是一样的,注意区别。
Dim hwnd As Long
Dim str1 As String
hwnd = FindWindowEx(0, 0, "TXGuiFoundation", vbNullString)
If hwnd = 0 Then
MsgBox "没有运行!"
Else
str1 = Space(50)
GetWindowText hwnd, str1, 50
str1 = Trim(str1)
If str1 = "QQ2009 正式版" Then
MsgBox "截获窗口!"
Else
MsgBox "实验失败!"
End If
End If
End Sub
现在老说实验失败
导致你找到的句柄不一定是主程序句柄
建议循环找(纯属建议)
do
hwnd = FindWindowEx(0, hwnd , "TXGuiFoundation", vbNullString)
print str1;
str1 = Space(50)
GetWindowText hwnd, str1, 50
str1 = left(str1,instr(str(1),chr(0))-1)
print str1
'if str1="QQ209" then msgbox
loop until hwnd=0