Rec*_*als 5 windows winapi contextmenu system-tray click
我需要弄清楚如何以编程方式从单独的应用程序的系统托盘图标中查找并选择上下文菜单项。我能想象实现这一点的唯一方法是使用 mouse_event() 和一些硬编码的 x/y 值,并将图标设置为始终显示。除了一般的硬编码的黑客使用之外,这里的问题是假设图标将保留其位置(这可能会在其他应用程序加载/卸载时中断)。我想知道是否有人知道任何其他方法来解决这个问题?
根据应用程序的编写方式,从上下文菜单中选择该项目将导致一条WM_COMMAND消息发布到属于该应用程序的窗口。您可以使用 Spy++ 等工具来检查这一点。如果是这种情况,那么您所要做的(理论上)就是模拟该消息。
如果应用程序不用于WM_COMMAND接收上下文菜单中的选择,那么您的工作就会困难得多。没有记录的方法可以发现系统托盘项的位置和标识,因此硬编码 x/y 值的方法可能是您拥有的最佳选择。