如何獲取軟件菜單上的文字內容?
各位前輩,小弟是「多倫多早鳥」,我可以用各种方法找到子窗型的菜單句柄,如下,不知有何方法可以獲取菜單上的文字內容?有何方法可以進行模擬鼠標點擊菜單的某個命令?
謝謝前輩們的指點。急!
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") '--第三個,通過方位檢查,的確是菜單 --------------------编程问答-------------------- 继续使用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缓冲区的长度
--------------------编程问答-------------------- 謝謝1樓的回應,但GetWindowText只是獲取某個窗體的標題,而無法得到一個「菜單控件」裡面的詳細內容,如第一個下拉窗的第二行是什麼文字?如菜單上"File"下拉的第一行是"New",如何獲取此文字?
像Notepad.exe這种簡單的軟件會有一個依附的menu,就可以用getmenu(hwnd)獲取,從而可以getsubmenu(hwnd,0)...GetMenuString可以獲取。
但像outlook express之類的菜單是子菜單,無法用此方法取得,真的非常急,有哪位前輩可以幫忙?
萬分感激! --------------------编程问答-------------------- 不了解
补充:VB , 控件