1,488
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String,ByVal lpWindowName As String) 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SETTEXT = &HC
Private Const BM_CLICK = &HF5
Private Const WM_CLOSE = &H10
Private Sub Command1_Click()
DoEvents
Dim QQHwnd As Long, RHwnd As Long, subhwnd As Long
QQHwnd = FindWindow(vbNullString, "请输入密码") '捕捉窗口
subhwnd = FindWindowEx(QQHwnd, 0, "EDIT", vbNullString)
Do While subhwnd > 0
subhwnd = FindWindowEx(QQHwnd, subhwnd, "EDIT", vbNullString) '捕捉第2个文本框
Exit Do
Loop
RHwnd = FindWindowEx(QQHwnd, 0, "Button", "确认")
SendMessage subhwnd, WM_SETTEXT, 0, ByVal Text1.Text 'Text2文本框内为 主程序放入另一个应用程序的文本框的值.
SendMessage RHwnd, BM_CLICK, 0, 0 '点击登录按钮
SendMessage RHwnd, BM_CLICK, 0, 0 '点击登录按钮 好象要有两个才会成功点到这个<确认>按钮
DoEvents
* RHwnd = FindWindow(vbNullString, "密码错误")
'上面这句 在调试时 该行,在另一个应用程序点了 确认 弹出了一个密码错误框时,程序停止,这句话执行不到了,点了确认才运行到这句!!!!!
If RHwnd > 0 Then SendMessage RHwnd, WM_CLOSE, 0, 0
DoEvents
End Sub



* RHwnd = FindWindow(vbNullString, "密码错误")
'加个时钟时间间隔200
If RHwnd <> 0 Then
timer1.enable = true
end if
Private Sub timer_timer()
RHwnd = FindWindow(vbNullString, "密码错误")
If RHwnd <> 0 Then
SendMessage RHwnd, WM_CLOSE, 0, 0
else
timer1.enable = false
end if
end sub