4

我需要弄清楚如何以编程方式从单独的应用程序的系统托盘图标中查找和选择上下文菜单项。我能想到的唯一方法是使用 mouse_event() 和一些硬编码的 x/y 值,并将图标设置为始终显示。除了一般硬编码的骇人听闻的使用之外,这里的问题是假设图标将保留它的位置(这可能会在另一个应用程序加载/卸载时中断)。我想知道是否有人知道其他方法可以解决这个问题?

4

2 回答 2

3

根据应用程序的编写方式,从上下文菜单中选择项目将导致将WM_COMMAND消息发布到属于应用程序的窗口。您可以使用 Spy++ 之类的工具来检查这一点。如果是这种情况,那么您所要做的(理论上)就是模拟该消息。

如果应用程序不WM_COMMAND用于接收来自上下文菜单的选择,那么您的工作就会困难得多。没有发现系统托盘项目的位置和标识的记录方法,因此硬编码 x/y 值的方法可能是您拥有的最佳选择。

于 2013-01-10T03:56:14.247 回答
2

请参阅这篇MSDN 论坛文章,该文章讨论了如何找到 systemTray 的句柄。然后这篇文章引用了一篇关于如何找到您正在搜索的应用程序句柄的CodeProject 文章。我还没有尝试过,但它看起来可能是一个可行的起点。

于 2013-01-10T04:03:55.980 回答