C# 通过注册表传递多个参数
我有一个程序,我添加到浏览器的右键菜单。当我在单个文件或文件夹上运行此程序时,它会使用文件和文件夹的注册表项C# 通过注册表传递多个参数,c#,windows,parameters,registry,C#,Windows,Parameters,Registry,我有一个程序,我添加到浏览器的右键菜单。当我在单个文件或文件夹上运行此程序时,它会使用文件和文件夹的注册表项HKCR\*\shell\program\command\myprogram.exe%1或HKCR\folder中所述的%1参数运行程序。这很好,但问题是当我选择多个文件/文件夹时,因为它会为每个选定的文件/文件夹执行该程序。我知道这是应该发生的,但我希望能够像处理一个选择一样处理多个选择,然后对参数进行foreach。我有什么办法可以做到这一点吗?非常感谢您的任何建议。据我所知,没有办法
HKCR\*\shell\program\command\myprogram.exe%1
或HKCR\folder
中所述的%1
参数运行程序。这很好,但问题是当我选择多个文件/文件夹时,因为它会为每个选定的文件/文件夹执行该程序。我知道这是应该发生的,但我希望能够像处理一个选择一样处理多个选择,然后对参数进行foreach。我有什么办法可以做到这一点吗?非常感谢您的任何建议。据我所知,没有办法通过注册表来完成。相反,您必须创建一个shell扩展 这里有一个关于shell扩展的好教程:
下面是关于编写处理多个文件的shell扩展的教程:
我希望这两种方法的结合将有助于您创建整个流程。经过几天的斗争,我不喜欢这种解决方案,我发现以下方法适合我: 程序“%1%2%3%4%5%6%7”
引号是它工作的原因。在将参数传递到应用程序中或在应用程序中处理参数时需要帮助吗?假设第一个是安全的吗?是的,这是第一个,当参数被传递到应用程序时,我可以处理它们。问题是,当我选择多个文件时,每个文件都调用reg键,创建一个单独的程序实例,我希望能够调用它一次。我会发布我的代码,但那只是处理传递的参数。Tbh我想我可能走错了方向,这就是我需要帮助的原因,谢谢。嗯,也许你可以编写一个批处理文件,将所有文件名传递到你的应用程序中,并将其放在上下文菜单中?谢谢链接,但它仍然只会处理为每个选定文件指定的参数,如果我选择3个文件并右键单击该选项,它仍然会执行程序或批处理文件3次,谢谢。就像你将3个文件压缩在一起一样,压缩程序会将所有选择的文件压缩到一个文件中,而不是每个文件压缩到自己的压缩文件中,希望这能更好地解释它:)谢谢,我想这就是我要找的!