为什么我的contextmenu条目小写?

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在上下文菜单中是大写的?

Paw*_*aga 4

我检查了这个库,看来你对这种行为没有影响。

\n\n

这是更改为小写的行:

\n\n
RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());\n
Run Code Online (Sandbox Code Playgroud)\n\n

_

\n\n
protected 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}\n
Run Code Online (Sandbox Code Playgroud)\n\n

您应该使用AddVerb(ProgramVerb verb)方法而不是集合分配,然后应保留大写:

\n\n
pai.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\\""));\n
Run Code Online (Sandbox Code Playgroud)\n