2011-12-26 762 views
0

我有一个程序,我添加到资源管理器的右键菜单。当我在单个文件或单个文件夹上运行它时,它将分别运行带有%1参数的程序,如注册表项HKCR\*\shell\program\command\myprogram.exe %1HKCR\folder中分别指定的文件和文件夹。这工作正常,但问题是当我选择多个文件/文件夹,因为它然后执行每个选定的程序。我知道这是应该发生的事情,但我希望能够像处理多个选择一样处理多个选择,然后对参数进行foreach。有什么办法可以做到这一点?任何建议,非常感谢。通过注册表传递多个参数

+0

你需要帮助*将参数传递给应用程序* __OR__ on *处理应用程序中的参数*?假设第一个是安全的吗? – Adam 2011-12-26 12:42:59

+0

是的,它是第一个,我可以在传递给应用程序时处理参数。问题是,当我选择多个文件时,他们都会调用reg键,创建一个单独的程序实例,我希望能够只调用一次。我会发布我的代码,但那只是处理传递的参数。 Tbh我想我可能会以错误的方式解决这个问题,这就是为什么我需要帮助,谢谢。 – 2011-12-26 12:47:15

+0

嗯,也许你可以写一个批处理文件,将所有文件名传入你的应用程序,并将其放入上下文菜单中[像这样](http://www.pcreview.co.uk/forums/multiple-commands-w -context菜单的注册表条目,t3867872.html)? – Adam 2011-12-26 12:50:48

回答

1

据我所知,没有办法通过注册表来实现。
相反,您将不得不创建一个外壳扩展。

以下是有关外壳扩展的一个很好的教程:
http://www.codeproject.com/KB/cs/dateparser.aspx
而这里的上编写处理多个文件外壳扩展教程:
http://www.codeproject.com/KB/shell/shellextguide2.aspx
我希望他们两个人的结合,将帮助您创建整个处理。

+0

谢谢,我想这就是我一直在寻找! – 2011-12-27 12:22:36

0

战斗这几天,不喜欢这个解决方案之后,我发现了以下工作对我来说:

程序 “%1%2%3%4%5%6%7”

的引号是什么让它工作。