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",则没有任何反应。
应该怎么解决呢?

解决方案 »

  1.   

    找父窗体怎么用FindWindowEx 呢?
    用FindWindw
      

  2.   

    还有,TXGuiFoundation要加引号
    另外,QQ2009的主窗口和聊天窗口的类名是一样的,注意区别。
      

  3.   

    是不是找父窗口用Findwindow,找其子窗口用FindwindowEx?不是说顶级窗口相当于桌面的子窗口么?
      

  4.   

    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 = "QQ2009 正式版" Then
    MsgBox "截获窗口!"
    Else
    MsgBox "实验失败!"
    End If
    End If
    End Sub
    现在老说实验失败
      

  5.   

    同级的“TXGuiFoundation”类窗口太多
    导致你找到的句柄不一定是主程序句柄
    建议循环找(纯属建议)
    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