各位前輩,小弟是「多倫多早鳥」,我可以用各种方法找到子窗型的菜單句柄,如下,不知有何方法可以獲取菜單上的文字內容?
有何方法可以進行模擬鼠標點擊菜單的某個命令?
謝謝前輩們的指點。急!hd=findwindow(vbnullstring,"Inbox - Outlook Express")
hd=findwindowEx(hd,0,vbnullstring,"SizableRebar")
hd=findwindowEx(hd,0,vbnullstring,"RebarWindow32")
menu_hd=findwindowEx(hd,0,vbnullstring,"ToolbarWindow32") '--第三個,通過方位檢查,的確是菜單

解决方案 »

  1.   

    继续使用GetWindowText来获取其文本信息Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    【操作系统】
    Win9X:Yes
    WinNT:Yes
    【说明】
      取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 
    【返回值】
      Long,复制到lpString的字串长度;不包括空中止字符。会设置GetLastError 
    【其它】
      不能用它从另一个应用程序的编辑控件中获取文字
    【参数表】
      hwnd -----------  Long,欲获取文字的那个窗口的句柄
      lpString -------  String,预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
      cch ------------  Long,lpString缓冲区的长度
      

  2.   

    謝謝1樓的回應,但GetWindowText只是獲取某個窗體的標題,而無法得到一個「菜單控件」裡面的詳細內容,如第一個下拉窗的第二行是什麼文字?如菜單上"File"下拉的第一行是"New",如何獲取此文字?
    像Notepad.exe這种簡單的軟件會有一個依附的menu,就可以用getmenu(hwnd)獲取,從而可以getsubmenu(hwnd,0)...GetMenuString可以獲取。
    但像outlook express之類的菜單是子菜單,無法用此方法取得,真的非常急,有哪位前輩可以幫忙?
    萬分感激!