我已经取得QQ的LOGIN窗体文本框和按纽的句柄    SetWindowText Text2.hwnd, ByVal 2222
    SendMessage command1.hwnd, BM_CLICK, 0, 0
    (2222就是密码)
向QQ的Login窗体发送密码,结果老是报告错误,为什么

解决方案 »

  1.   

    我是用WindowFromPoint函数
    鼠标上去探的
      

  2.   

    SetWindowText hwnd, ByVal 2222
    SendMessage hwnd, BM_CLICK, 0, 0
      

  3.   

    用一个时间控件,然后再用Findwidow这个api就可以了.具本代码如下:
    Private Sub Timer1_Timer()
    Dim str As String
    Dim nmb As String
    Dim qqhwnd As Long
    Dim numberhwnd As Long
    Dim pwdhwnd As Long
    Dim temp As Long
    str = String(80, 0)
    nmb = String(8, 0)
    qqhwnd = FindWindow(vbNullString, "QQ用户登录")
    '到这里就可以得到登录框的句柄了.注意qq要大写哦!
    If qqhwnd <> 0 Then
    numberhwnd = GetDlgItem(qqhwnd, &H3EC) '得到用户号码框的名柄
    pwdhwnd = GetDlgItem(qqhwnd, &H3F4) '得到密码框的句柄
    'getdlgitem你肯定会用了,那么&h3ec是那里来的呀,这个便是它的ID号,那么怎么得到呢?你用vc++中的工具   SPYXX就可以得到了.
    SendMessage pwdhwnd, WM_GETTEXT, Len(str), ByVal str '得到号码
    SendMessage numberhwnd, WM_GETTEXT, Len(nmb), ByVal nmb '得到密码
    notxt.Text = nmb
    pwdtxt.Text = str
    DoEvents
    End If
    End Sub
      

  4.   

    TO:JennyVenus() 你的主法对新版的QQ好像不行,因为QQ的标题栏不是系统标准的,好像是画的。
      

  5.   

    to chenyu5188(蓝色情调):( QQ的标题栏是""
    To JennyVenus:不好意思,我不懂 getdlgitem函数来的,希望指教
    你那段代码好像不
      

  6.   

    对,标题名不是真的,真正的标题为75个空格
    要设置它的文本可以这样:
    Dim s as string
    SendMessage(hwd,&HD,20,byval s)