C# 从上下文菜单中选择时将参数传递给应用程序

问题描述 投票:0回答:0

我正在尝试使用以下代码向上下文菜单添加一个选项

using var zipTargetRegKey = Registry.CurrentUser.CreateSubKey(@"Software\Classes\.zip\");
zipTargetRegKey.SetValue(string.Empty, "CompressedFolder");
zipTargetRegKey.SetValue("Content Type", "application/x-zip-compressed");
zipTargetRegKey.SetValue("DontCompressInPackage", string.Empty);
zipTargetRegKey.CreateSubKey("OpenWithProgids").SetValue("CompressedFolder", string.Empty);
zipTargetRegKey.CreateSubKey("PersistentHandler").SetValue(string.Empty, "098f2470-bae0-11cd-b579-08002b30bfeb");

using var regKey = Registry.CurrentUser.CreateSubKey(@"Software\Classes\.zip\shell\AppName\");
regKey.SetValue(string.Empty, "Unzip");
regKey.SetValue("Icon", "icon_path");
regKey.CreateSubKey("command").SetValue(string.Empty, "path_to_exe.exe %1"));

上下文菜单中的图标和选项显示得很好,但是,没有参数被传递到我的应用程序。我也尝试过使用

"%1"
"%~1"
,但似乎都不起作用。

我做错了什么?

跟进:我可以传递自定义参数吗?比如 path_to_exe.exe /custom_arg %1

c# registry command-line-arguments contextmenu
© www.soinside.com 2019 - 2024. All rights reserved.