如何獲取軟件菜單上的文字內容?

trtbird 2012-10-17 09:58:04
各位前輩,小弟是「多倫多早鳥」,我可以用各种方法找到子窗型的菜單句柄,如下,不知有何方法可以獲取菜單上的文字內容?
有何方法可以進行模擬鼠標點擊菜單的某個命令?
謝謝前輩們的指點。急!

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") '--第三個,通過方位檢查,的確是菜單
...全文
204 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
trtbird 2012-10-18
  • 打赏
  • 举报
回复
謝謝1樓的回應,但GetWindowText只是獲取某個窗體的標題,而無法得到一個「菜單控件」裡面的詳細內容,如第一個下拉窗的第二行是什麼文字?如菜單上"File"下拉的第一行是"New",如何獲取此文字?
像Notepad.exe這种簡單的軟件會有一個依附的menu,就可以用getmenu(hwnd)獲取,從而可以getsubmenu(hwnd,0)...GetMenuString可以獲取。
但像outlook express之類的菜單是子菜單,無法用此方法取得,真的非常急,有哪位前輩可以幫忙?
萬分感激!
贝隆 2012-10-18
  • 打赏
  • 举报
回复
继续使用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缓冲区的长度
xzh132 2012-10-18
  • 打赏
  • 举报
回复
不了解

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧