Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过注册表传递多个参数_C#_Windows_Parameters_Registry - Fatal编程技术网

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个文件压缩在一起一样,压缩程序会将所有选择的文件压缩到一个文件中,而不是每个文件压缩到自己的压缩文件中,希望这能更好地解释它:)谢谢,我想这就是我要找的!