
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, ByVal 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 Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) 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_KEYDOWN = &H100
Private Sub Command1_Click()
hpwnd = FindWindow(vbNullString, "view")
Debug.Print "hpwd:" & hpwnd
hcwnd = FindWindowEx(hpwnd, 0, vbNullString, "忽略(I)")
Debug.Print "hcwnd:" & hcwnd
SetForegroundWindow hpwnd
'SendMessage hcwnd, WM_LBUTTONDOWN, 0, 0
'SendMessage hcwnd, WM_LBUTTONUP, 0, 0
retval1 = PostMessage(hpwnd, WM_KEYDOWN, VK_A, 0&) '向這個視窗發送關閉資訊
Debug.Print retval1
End Sub
Private Sub Command2_Click()
Const WM_CLOSE = &H10 '常用變數定義
'程式代碼
Dim winHwnd As Long '定義一個長整形變數winHwnd
Dim RetVal As Long '定義一個長整形變數RetVal
winHwnd = FindWindow(vbNullString, "view") 'API函式查找"Calculator"這個視窗
Debug.Print winHwnd '顯示這個視窗句柄
If winHwnd <> 0 Then '如不為0,表示找到視窗
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) '向這個視窗發送關閉資訊
If RetVal = 0 Then '如果回傳資訊為0.表示失敗,未發送成功
MsgBox "Error posting message." '提示發送失敗
End If
Else
MsgBox "The Calculator is not open." '提示沒有找到打開的程式
End If
End Sub
這程許就是關不掉,求大神
uj5u.com熱心網友回復:
http://www.autohotkey.comuj5u.com熱心網友回復:
應該找忽略(&I)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/51448.html
標籤:API
上一篇:VBA按照輸入的值進行篩選
