我使用注册表在Windows资源管理器的上下文菜单中添加了一个项目。 我希望当用户右键单击文件然后单击我添加的上下文菜单项时,必须执行应用程序以及该文件的位置必须可用。
我的应用程序被执行但我无法获得我右键单击的文件路径
答案 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来获取。