delphi 如何取得另外一个程序的弹出菜单句柄?(100)

  • 主题发起人 主题发起人 hzx317
  • 开始时间 开始时间
H

hzx317

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi 如何取得另外一个程序的弹出菜单句柄?
 
经跟踪,那些菜单是放在类名为tooltips_class32的窗口上,目前已经得到这个窗口的句柄。但还是遍历不出里面的菜单。郁闷啊
 
另外一个想法是跟踪窗口消息,然后模拟发送相应消息来实现,既然也跟不到任何有价值的消息,没高人解答这事吗?
 
提醒一下,大多弹出菜单是在弹出时才建立的,句柄在弹出前不可知
 
谢谢提醒,试试看先
 
目前最流行的方法是使用全局钩子,截获WM_CREATE消息来获得 菜单的HWND
 
VAR h:HWND; h1,h2:Thandle ; id:integer;begin h:=findwindow('Notepad','无标题 - 记事本'); h1:=GetMenu(h); h2:=GetSubMenu(h1, 2); id:=GetMenuItemID(h2, 1) ; PostMessage (h,WM_COMMAND,id, 0);end;以上代码 是点击 记事本的 “字体” 按钮。。其他自己摸索GetSubMenu(h1, 2); 的 2 就是 0-》1-》2 文件-》编辑-》格式要的是“格式”GetMenuItemID(h2, 1) ; 的 1 是 0-》1 自动换行 —》字体
 
呵呵,谢谢你的回复。但你没注意,是弹出菜单,不是普通菜单。
 
是说右键的菜单?那种句柄是不固定的。因为每右键一次。就会建立一次。。句柄就不同了。。
 
后退
顶部