繁体   English   中英

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

[英]Windows Explorer right click context menu for files and folders

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

我希望在文件上下文菜单中可以选择通知我的应用程序。

我添加了键:

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

测试代码:

#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;
}

这很好,但是......如果我标记了几个文件/文件夹并右键单击并选择我添加的选项,则会启动许多测试应用程序。

这不是我想要的行为,我希望所有路径都会作为argv的列表传递到我的应用程序的单个实例中,有谁知道如何做到这一点?

BTW。 我使用C++编码,但我认为这与Windows shell的业务无关。

谢谢。

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

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

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

HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers

SO上也有类似的问题:

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

如何将MULTIPLE文件名传递给Context Menu Shell命令?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM