请高手帮忙看看这个代码哪里错了,这是一个VB控制QQ自动输入和发送的程序,我只能实现输入但是发送不了,请各位指教,谢谢
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwnd1 As Long, ByVal hwnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Const WM_KEYDOWN = &H100
Private Const BM_CLICK = &H77E
Private Sub Command1_Click()
 Dim hwnd1 As Long
 Dim hwnd2 As Long
 Dim hwnd3 As Long
 Dim hwnd4 As Long
  
 hwnd1 = FindWindow("#32770", "与xxx聊天中")
 If (hwnd1 <> 0) Then
 hwnd2 = GetDlgItem(hwnd1, &H0)
 If (hwnd2 <> 0) Then
 hwnd3 = GetDlgItem(hwnd2, &H0)
 If (hwnd3 <> 0) Then
 hwnd4 = GetDlgItem(hwnd3, &H37E)
 If (hwnd4 <> 0) Then
 PostMessage hwnd4, WM_KEYDOWN, vbKey1, 0
 SendMessage buttonhwnd, BM_CLICK, ByVal 0&, ByVal 0&
 End If
 End If
 End If
 End If
End Sub

解决方案 »

  1.   

    SendMessage buttonhwnd, BM_CLICK, ByVal 0&, ByVal 0&句柄buttonhwnd这个哪来的??
      

  2.   

    那加上一句
     If (hwnd4 <> 0) Then
     buttonhWnd = GetDlgItem(hwnd4, &H77E)
     SendMessage buttonhWnd, BM_CLICK, ByVal 0&, ByVal 0&
    对不对?&H77E是“发送”按钮的controlID
      

  3.   

    我返回的sendMessage的值是0,实在不知道怎么弄了,拜托各位高人,多多请教
      

  4.   

    把完整代码帖到我博客上或者打包工程去我给你解决
    地址是www.chenhui530.com
      

  5.   

    2个错误,
    1。是buttonhwnd为0,没有正确获取。
    2。BM_CLICK常量错误,应该为&HF5