Windows资源pipe理器右击文件和文件夹的上下文菜单

我的问题与此类似,但是这并没有给我所需要的所有信息,或者我不太了解。

我希望在文件上下文菜单中有选项来通知我的应用程序。

我添加了键:

HKLM/SOFTWARE/Classes/*/shell/MyApp/command::"C:\\path\\test.exe" "%1" HKLM/SOFTWARE/Classes/Folder/shell/MyApp/command::"C:\\path\\test.exe" "%1" 

testing代码:

 #include <iostream> int main(int argc, char *argv[]) { for (int i = 1; i < argc; ++i) std::cout << argv[i] << "\r\n"; system("pause"); return 0; } 

这工作正常,但是…如果我标记几个文件/文件夹,并右键单击并select我添加的选项,许多testing应用程序启动。

这不是我想要的行为,我希望所有的path将被传递到我的应用程序的单个实例作为argv的列表,有没有人知道如何做到这一点?

BTW。 我用C++编码,但我认为这不是问题,因为它是Windowsshell的业务。

谢谢。

Solutions Collecting From Web of "Windows资源pipe理器右击文件和文件夹的上下文菜单"

我认为正确的方法是编写ContextMenuHandler并将其注册为外壳扩展。

你可以在 这里或这里找到很多样品

上下文菜单处理程序注册在密钥下

 HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers 

这个问题上也有类似的问题:

如何通过右键单击事件(动词)传递多个文件/文件夹路径到可执行文件?

如何将多个文件名传递给上下文菜单命令

用于多个文件的Windows上下文菜单[C ++]

从C#的Windows shell上下文菜单中获取多个文件(参数)