为什么我的上下文菜单条目是小写的?
Why are my contextmenu entries lower case?
我正在使用 BrendanGrant.Helpers.FileAssociation;
(一个 NuGet 包)为我的应用程序创建文件关联。到目前为止它工作正常。但是,我对 ProgramVerb
s:
有疑问
当我创建 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\"")
});
}
Bearbeiten 和 Öffnen(编辑和打开)关键字在 windows 资源管理器的上下文菜单中是小写的:
我将第二个条目命名为 WAAAA 以测试它是否只改变了第一个字符,但显然它没有。
我必须更改什么才能让我的 Bearbeiten 和 Öffnen 在上下文菜单中变成大写?
我检查了这个库,你似乎对这个行为没有影响。
这是更改为小写的行:
RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());
_
protected void SetVerbs(ProgramVerb[] verbs)
{
if (!this.Exists)
throw new Exception("Extension does not exist");
RegistryKey registryKey = RegistryHelper.AssociationsRoot.OpenSubKey(this.progId, true);
if (registryKey.OpenSubKey("shell", true) != null)
registryKey.DeleteSubKeyTree("shell");
RegistryKey subKey1 = registryKey.CreateSubKey("shell");
foreach (ProgramVerb verb in verbs)
{
RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());
RegistryKey subKey3 = subKey2.CreateSubKey("command");
subKey3.SetValue(string.Empty, (object) verb.Command, RegistryValueKind.ExpandString);
subKey3.Close();
subKey2.Close();
}
ShellNotification.NotifyOfChange();
}
您应该使用 AddVerb(ProgramVerb verb) 方法而不是集合分配,然后应保留大写字母:
pai.Create("App name", new ProgramVerb[0]);
pai.AddVerb(new ProgramVerb("Öffnen", Assembly.GetEntryAssembly().Location + " \"%1\""));
pai.AddVerb(new ProgramVerb("Bearbeiten", Assembly.GetEntryAssembly().Location + " \"%1\""));
我正在使用 BrendanGrant.Helpers.FileAssociation;
(一个 NuGet 包)为我的应用程序创建文件关联。到目前为止它工作正常。但是,我对 ProgramVerb
s:
当我创建 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\"")
});
}
Bearbeiten 和 Öffnen(编辑和打开)关键字在 windows 资源管理器的上下文菜单中是小写的:
我将第二个条目命名为 WAAAA 以测试它是否只改变了第一个字符,但显然它没有。
我必须更改什么才能让我的 Bearbeiten 和 Öffnen 在上下文菜单中变成大写?
我检查了这个库,你似乎对这个行为没有影响。
这是更改为小写的行:
RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());
_
protected void SetVerbs(ProgramVerb[] verbs)
{
if (!this.Exists)
throw new Exception("Extension does not exist");
RegistryKey registryKey = RegistryHelper.AssociationsRoot.OpenSubKey(this.progId, true);
if (registryKey.OpenSubKey("shell", true) != null)
registryKey.DeleteSubKeyTree("shell");
RegistryKey subKey1 = registryKey.CreateSubKey("shell");
foreach (ProgramVerb verb in verbs)
{
RegistryKey subKey2 = subKey1.CreateSubKey(verb.Name.ToLower());
RegistryKey subKey3 = subKey2.CreateSubKey("command");
subKey3.SetValue(string.Empty, (object) verb.Command, RegistryValueKind.ExpandString);
subKey3.Close();
subKey2.Close();
}
ShellNotification.NotifyOfChange();
}
您应该使用 AddVerb(ProgramVerb verb) 方法而不是集合分配,然后应保留大写字母:
pai.Create("App name", new ProgramVerb[0]);
pai.AddVerb(new ProgramVerb("Öffnen", Assembly.GetEntryAssembly().Location + " \"%1\""));
pai.AddVerb(new ProgramVerb("Bearbeiten", Assembly.GetEntryAssembly().Location + " \"%1\""));