Maf*_*fii 5 c# windows windows-explorer file-association
我正在使用BrendanGrant.Helpers.FileAssociation;(一个NuGet包)为我的应用程序创建文件关联.它到目前为止工作正常.但是,我有一个问题ProgramVerb:
当我创建一个ProgramAssociation并向它添加动词时:
var pai = new ProgramAssociationInfo(fai.ProgID);
pai.Create(
"App name",
new[]
{
new ProgramVerb("Öffnen", Assembly.GetEntryAssembly().Location + " \"%1\""),
new ProgramVerb("Bearbeiten", Assembly.GetEntryAssembly().Location + " \"%1\"")
});
}
Run Code Online (Sandbox Code Playgroud)
Bearbeiten和Öffnen(编辑和打开)关键字在Windows资源管理器的上下文菜单中是小写的:
我将第二个条目WAAAA命名为测试它是否仅改变第一个角色,但显然不是.
我需要更改什么,以便我的Bearbeiten和Öffnen在上下文菜单中是大写的?
我检查了这个库,看来你对这种行为没有影响。
\n\n这是更改为小写的行:
\n\nRegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());\nRun Code Online (Sandbox Code Playgroud)\n\n_
\n\nprotected void SetVerbs(ProgramVerb[] verbs)\n{\n if (!this.Exists)\n throw new Exception("Extension does not exist");\n RegistryKey registryKey = RegistryHelper.AssociationsRoot.OpenSubKey(this.progId, true);\n if (registryKey.OpenSubKey("shell", true) != null)\n registryKey.DeleteSubKeyTree("shell");\n RegistryKey subKey1 = registryKey.CreateSubKey("shell");\n foreach (ProgramVerb verb in verbs)\n {\n RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());\n RegistryKey subKey3 = subKey2.CreateSubKey("command");\n subKey3.SetValue(string.Empty, (object) verb.Command, RegistryValueKind.ExpandString);\n subKey3.Close();\n subKey2.Close();\n }\n ShellNotification.NotifyOfChange();\n}\nRun Code Online (Sandbox Code Playgroud)\n\n您应该使用AddVerb(ProgramVerb verb)方法而不是集合分配,然后应保留大写:
\n\npai.Create("App name", new ProgramVerb[0]);\npai.AddVerb(new ProgramVerb("\xc3\x96ffnen", Assembly.GetEntryAssembly().Location + " \\"%1\\""));\npai.AddVerb(new ProgramVerb("Bearbeiten", Assembly.GetEntryAssembly().Location + " \\"%1\\""));\nRun Code Online (Sandbox Code Playgroud)\n