I found an alternate way to do what I needed (select menu items). The code is as follows: [code=vb] Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer Private Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Integer) As Integer Private Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Integer, ByVal nPos As Integer) As Integer Private Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Integer, ByVal nPos As Integer) As Integer Private Const WM_COMMAND = &H111 Dim hwnd, hWndMenu, hWndSubMenu, MenuItem As Integer hwnd = FindWindow(vbNullString, "Untitled - Notepad") hWndMenu = GetMenu(hwnd) ' Get handle to Menu Items hWndSubMenu = GetSubMenu(hWndMenu, 0) ' Get handle to ‘File’ submenu MenuItem = GetMenuItemID(hWndSubMenu, 1) ' Get menuID for the ‘Open’ SendMessage(hwnd, WM_COMMAND, MenuItem, vbNullString) ' Click ‘Open’ menuitem [/code]
|