如何防止从windows上下文菜单打开应用程序



对于创建Windows上下文菜单,我们需要:Computer\HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\myapp\command默认值将设置为"c: \path\to\myapp.exe"quot;%1〃;。

如果myapp正在运行,我不想再运行一个实例,我只想将数据传递给现有实例。

如何防止打开新实例并将数据发送到现有实例?

您需要与正在运行的应用程序的其他实例进行通信。在过去,您可以使用DDE,但现在已不再推荐使用了。最好的方法可能是COM服务器方法,您可以在这里找到它的示例实现。这使用IDropTarget,并一直工作到XP。IExecuteCommand也可以在Windows7及更高版本上使用和工作。

一个更简单的方法是使用FindWindow并在WinMain中向自己发送WM_COPYDATA消息,但这里存在一个小的竞争条件,可能会导致多个打开的应用程序。您可以使用一个命名的互斥体来解决这个问题。

相关内容

  • 没有找到相关文章

最新更新