繁体   English   中英

模拟右键单击系统任务栏图标,然后单击C ++中的上下文菜单

[英]Simulating right click on system tray icon and clicking on context menu in C++

我是一位对C ++有所了解的Python开发人员。

话虽如此,我想了解如何右键单击系统任务栏图标,然后单击上下文菜单上的选项之一。

我环顾了互联网,找不到能够使我相对于“通知区域”相对应的系统任务栏图标的位置的东西。 另外,我可以获得任务栏图标的“按钮”文本。

我使用FindWindowEx获得ToolbarWindow32的句柄。

我试图使用SendMessageWM_RBUTTONDOWNWM_RBUTTONUP发送到具有X和Y坐标的ToolbarWindow32的句柄, ToolbarWindow32没有任何反应。

我完全忘了如何右键单击该图标并获取上下文菜单信息,然后使用该选项单击其中一个选项。

经过研究,至少无法通过我尝试的任何API,都无法将点击消息发送到系统任务栏图标。 做到这一点的最佳方法是我遵循的方法如下:

  1. 您将消息TB_GETBUTTON发送到工具栏。
  2. 这将为您检索的按钮为您检索一个“ idCommand”,因此您可以使用循环来获取所有的“ idCommand”,这可以在TBBUTTON结构中找到。
  3. 使用idComman,您可以将消息发送到带有工具栏手柄的工具栏按钮,以通过TB_RECT消息获取图标的尺寸。
  4. 知道按钮的尺寸后,您只需要获取工具栏的尺寸即可,这很简单,因为它只是一个窗口,因此您可以对GetWindowRect进行校准
  5. 现在的最后一步是,您要发送单击win32api.mouse_event的单击,其中x为:工具栏的左边界+图标宽度的一半,y为:工具栏的上边界+高度的一半。图标。 (因此,您将点击发送到了中心)。

    希望它能对您有所帮助! 我问过类似的问题,并在这里回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM