思路:
1.用FindWindow查目標(biāo)應(yīng)用程序的句柄
2.用GetMenu,GetSubMenu查菜單句柄
3.用GetMenuItemID查菜單ID
4.用SendMessage 加WM_COMMAND消息,模擬一次菜單操作
例子:模擬單擊記事本程序 "文件"->"另存為"菜單
Private Declare Function GetMenu Lib "user32.dll" (ByVal hWnd 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, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetMenuItemID Lib "user32.dll" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetSubMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Const WM_COMMAND As Long = &H111
Private Sub Command1_Click()
Dim hWnd As Long, hMenu As Long, MenuID As Long
hWnd = FindWindow(vbNullString, "新建 文本文檔 - 記事本") '記事本的句柄,默認(rèn)新建
hMenu = GetMenu(hWnd)
hMenu = GetSubMenu(hMenu, 0) '"文件"菜單的句柄
MenuID = GetMenuItemID(hMenu, 3) '子菜單"另存為"的ID
SendMessage hWnd, WM_COMMAND, MenuID, ByVal 0
End Sub