右键单击文件执行两项任务,c#

时间:2010-01-14 09:30:28

标签: c#

我使用注册表在Windows资源管理器的上下文菜单中添加了一个项目。 我希望当用户右键单击文件然后单击我添加的上下文菜单项时,必须执行应用程序以及该文件的位置必须可用。

我的应用程序被执行但我无法获得我右键单击的文件路径

3 个答案:

答案 0 :(得分:4)

您是如何添加该上下文菜单项的?您需要在某处传递文件名,这通常是通过将%1放入要执行的命令行来完成的。

因此,如果您当前正在执行的命令是

"C:\Program Files\MyCoolProgram\mcp.exe"

应该是

"C:\Program Files\MyCoolProgram\mcp.exe" %1

答案 1 :(得分:3)

看看这里:A simple C# function to add context menu items in Explorer并注意这一部分:

AddContextMenuItem(".zip", "ZipStrip",
  "Open with &ZipStrip", Application.ExecutablePath + " %1");

这样,您就可以在Main(string args[])

上收到完整的文件路径作为第一个参数

编辑:如果您需要处理包含空格的参数,请尝试以下操作:

AddContextMenuItem(".zip", "ZipStrip",
  "Open with &ZipStrip", Application.ExecutablePath + " ""%1""");

这样你的参数将被括在双引号中,保留那些空格。

答案 2 :(得分:0)

路径作为命令行参数传递。在入口点,您可以通过定义string[]参数来访问它:

static void Main(string[] args) {
    // the path is passed in the `args` array.
}

也可以通过致电Environment.GetCommandLineArgs method来获取。