Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As LongPrivate Const BM_CLICK As Long = &HF5& Private Const WM_GETTEXT As Long = &HDPrivate Sub Command1_Click() Dim hwnd As Long Dim mHwnd As Long Dim L As Long Dim tempstr1 As String * 256Shell "c:\aa.exe", vbNormalFocus Delay 2 mHwnd = FindWindow(vbNullString, "连接状态") If mHwnd <> 0 Then hwnd = GetNextWindow(mHwnd, 5) Do If hwnd > 0 Then L = SendMessage(chHwnd, WM_GETTEXT, 256, ByVal tempstr1) If InStr(tempstr1, "连接") <> 0 Then L = SendMessage(chHwnd, BM_CLICK, 0, 0) End If End If hwnd = GetNextWindow(hwnd, 2) Loop While hwnd > 0Else MsgBox "找不到窗体" End If End Sub Public Sub Delay(PauseTime As Long) Dim Start As SingleStart = Timer Do While Timer < Start + PauseTime DoEvents Loop End Sub
Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As LongPrivate Const BM_CLICK As Long = &HF5&
Private Const WM_GETTEXT As Long = &HDPrivate Sub Command1_Click()
Dim hwnd As Long
Dim mHwnd As Long
Dim L As Long
Dim tempstr1 As String * 256Shell "c:\aa.exe", vbNormalFocus
Delay 2
mHwnd = FindWindow(vbNullString, "连接状态")
If mHwnd <> 0 Then
hwnd = GetNextWindow(mHwnd, 5)
Do
If hwnd > 0 Then
L = SendMessage(chHwnd, WM_GETTEXT, 256, ByVal tempstr1)
If InStr(tempstr1, "连接") <> 0 Then
L = SendMessage(chHwnd, BM_CLICK, 0, 0)
End If
End If
hwnd = GetNextWindow(hwnd, 2)
Loop While hwnd > 0Else
MsgBox "找不到窗体"
End If
End Sub
Public Sub Delay(PauseTime As Long)
Dim Start As SingleStart = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
End Sub
属于那种运行程序的时候,按Ctrl+Alt+Del也看不到的。
属于那种一运行就到托盘的那种,我想要的是在托盘上双击就会打开的那个窗体
Public Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
取得当前活动窗口的句柄发一个消息过去就行了呀
SLEEP(100)
SENDMESSAGE HWND,WM_CLOSE,0,0
HWND 是当前活动窗口的句柄 ok