如何调用一个外部程序的系统托盘菜单 API 高手请进!!!!

winder_008 2012-06-06 05:18:07
如何调用一个外部程序的系统托盘菜单呢??
例如:在系统托盘中有任务管理器,我获取了他的句柄 但是不能弹出他的托盘菜单。
postmessage不行!

不想用 mouse_event !!!

感谢!!!!!!!!
...全文
184 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
s11ss 2012-06-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
例如 你用远程桌面 连接计算机 在远程桌面的 程序 选项中 设定一个启动程序(这个程序有托盘菜单) 但是这个时候 就不能获取托盘句柄!
[/Quote]那就别采用这种方式启动啊!换个思路!
winder_008 2012-06-07
  • 打赏
  • 举报
回复
例如 你用远程桌面 连接计算机 在远程桌面的 程序 选项中 设定一个启动程序(这个程序有托盘菜单) 但是这个时候 就不能获取托盘句柄!
winder_008 2012-06-07
  • 打赏
  • 举报
回复
现在是关键 无法获取托盘句柄啊!
s11ss 2012-06-07
  • 打赏
  • 举报
回复
TB_GETITEMRECT获取图标所在区域R,
然后
PostMessage(托盘句柄, WM_RBUTTONDOWN, MK_RBUTTON, MAKELPARAM(R.Left+5, R.Top+5));
PostMessage(托盘句柄, WM_RBUTTONUP, 0, MAKELPARAM(R.Left+5, R.Top+5));
winder_008 2012-06-07
  • 打赏
  • 举报
回复
还有一种情况 就是如果用远程桌面调用程序 的时候 这个时候 任务栏是出不来的! 就没有ToolbarWindow32句柄,这个时候如何得到这个程序的 托盘菜单呢???
我用Hook 已经获取到了图标和句柄,但是用PostMessage 怎么都不能呼出菜单!
s11ss 2012-06-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
如果用户隐藏了 任务栏呢!!

不能通过这种方式处理!!!!
[/Quote]隐藏了 任务栏的话,会自动显示任务栏,并弹出菜单。

但是,系统的另一个菜单也会同时出现。。。
winder_008 2012-06-06
  • 打赏
  • 举报
回复
如果用户隐藏了 任务栏呢!!

不能通过这种方式处理!!!!
s11ss 2012-06-06
  • 打赏
  • 举报
回复
取右下角那个ToolbarWindow32的句柄,然后取任务管理器的图标的区域,再发送WM_RBUTTONDOWN就可以弹出菜单了吧?

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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