我想控制其它程序的菜单操作,实现对菜单的单击效果
谢谢!

解决方案 »

  1.   

    Option ExplicitPrivate 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 LongPrivate Const WM_COMMAND As Long = &H111Private Sub Command1_Click()
        Dim h1 As Long, h2 As Long, id As Long
        
        h1 = FindWindow("Notepad", vbNullString)  '記事本的句柄
        h2 = GetMenu(h1)
        h2 = GetSubMenu(h2, 0)        '"檔案"菜單的句柄
        id = GetMenuItemID(h2, 0)     '子菜單"新增"的ID
        SendMessage h1, WM_COMMAND, id, ByVal 0&
        
    End Sub
      

  2.   

    To leolan(史留香):
       太感谢了,这个问题困扰了我很多天。