IExecuteCommand 不断启动新的 Process/Com Server?

问题描述 投票:0回答:0

我正在 Windows 中进行 Shell 集成,使用下面的 MS 示例:

https://github.com/microsoft/Windows-classic-samples/blob/main/Samples/Win7Samples/winui/shell/appshellintegration/ExecuteCommandVerb/ExecuteCommandVerb.cpp

此代码文件顶部的注释为:

请注意,如果应用程序尚未运行,COM 将启动您的应用程序,如果应用程序已在运行,它将连接到已经运行的应用程序实例。

样本本身被设计为执行一次然后退出——这是按预期工作的。但是,我希望我的 EXE 继续运行,这样当用户在资源管理器中右键单击文件并选择我的动词时,应该使用我的应用程序的现有实例。我使用了示例中的代码。但是,每次我右键单击一个文件并选择我的动词时,它都会启动我的 EXE(COM 服务器)的一个新实例——这与上面的评论相矛盾。

我尝试了不同的

REGCLS
值,但行为没有变化。另外,我尝试在注册表中添加
MultiSelectModel=Player
(在我的动词键下),但这没有帮助。

windows winapi com
© www.soinside.com 2019 - 2024. All rights reserved.