【发布时间】:2011-04-02 12:36:54
【问题描述】:
我有一个单实例应用程序(c#、WPF、.net3.51)。检查应用程序是否已经实例化是通过互斥锁完成的。如果应用程序已经在运行,我会从已经打开的应用程序实例中打开一个新窗口。到目前为止,这工作正常。
但是由于应用程序扩展,我现在必须将 e.Args(或至少它的第一个字符串)发送到驻留在另一个进程中的已运行实例。如何做到最好?
其他信息
目前我使用一个全局注册的窗口消息,我通过 PostMessage (HWND_BROADCAST) 发送给所有打开的应用程序。如果收到此消息,我的应用程序会查找此消息并打开一个新窗口。一个想法是设置 PostMessage 的参数。但是我发现了很多关于这个话题的令人眼花缭乱的信息,因此我没有勇气走这条路。除此之外,我还想通过另一个激活逻辑来替换全局 PostMessage 调用,因为全局调用似乎有一些令人讨厌的副作用。
【问题讨论】: