Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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_Registry - Fatal编程技术网

C# 资源管理器上下文菜单程序是否可以对多个标记的文件仅启动一次?

C# 资源管理器上下文菜单程序是否可以对多个标记的文件仅启动一次?,c#,windows,registry,C#,Windows,Registry,我在Windows资源管理器上下文菜单中添加了一个程序,该程序将处理通过资源管理器提供给它的所有文件。因此,我标记文件,然后右键单击并单击“myProcessFiles” 它可以很好地运行,但有一个例外,当我标记多个文件时,应用程序会在每个文件中启动一次,而不是在所有文件都作为参数时启动一次(如我所预期的) 我已将MyProcessFiles的一个键添加到注册表中的*/Shell 然后在MyProcessFiles中添加了以下命令键: "C:\MyProcessFiles.exe" "%1"

我在Windows资源管理器上下文菜单中添加了一个程序,该程序将处理通过资源管理器提供给它的所有文件。因此,我标记文件,然后右键单击并单击“myProcessFiles”

它可以很好地运行,但有一个例外,当我标记多个文件时,应用程序会在每个文件中启动一次,而不是在所有文件都作为参数时启动一次(如我所预期的)

我已将MyProcessFiles的一个键添加到注册表中的*/Shell

然后在MyProcessFiles中添加了以下命令键:

"C:\MyProcessFiles.exe" "%1"
我的问题是:有没有办法让程序只启动一次

注意:由于正在启动的程序本身(MyProcessFiles)是一个C程序,我还将C添加到标记中,因为这可能是一个可能的解决方案
是基于编程语言的(仅通过程序本身)

通过使用不同的关键字搜索,我在另一个存在相同问题的网站上偶然发现了一个老问题(1岁)

本质上,讨论了两种可能的解决方案

  • 编写带有教程链接的Shell扩展:(第2部分包含一次操作多个文件的程序的确切信息)

  • 而不是将程序添加到“正常”上下文菜单,将其放入“发送到”上下文菜单。这可以通过将指向应用程序的链接放到%APPDATA%\Microsoft\Windows\SendTo文件夹中来实现(请注意,这是来自另一个站点上的Windows 7应答,因此对于其他版本的操作系统可能会有所不同)