2013-08-04 41 views
1

我觉得这是一个很奇怪的问题,但无论如何...注册表项编写的,但没有上下文菜单项

我已经创建了两个C#应用程序,himgr.execimgr.exe。它们与Inno Setup一起安装,并复制到C:\Program Files [(x86)]\Imgr Suite

他们就完成了,通过在explorer.exe上下文菜单项中使用,所以我配置了installator在注册表中创建几个键:

[Registry] 
Root: HKLM; Subkey: "SOFTWARE\classes\jpegfile\shell\Halve size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\jpegfile\shell\Halve size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\himgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\pngfile\shell\Halve size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\pngfile\shell\Halve size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\himgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\giffile\shell\Halve size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\giffile\shell\Halve size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\himgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\jpegfile\shell\Resize to custom size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\jpegfile\shell\Resize to custom size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\cimgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\pngfile\shell\Resize to custom size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\pngfile\shell\Resize to custom size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\cimgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\giffile\shell\Resize to custom size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\giffile\shell\Resize to custom size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\cimgr.exe"" ""%1""" 

完全安装脚本here

注意:我也尝试过HKCR\jpegfile等,它为我工作,但...

无论使用以上(使用HKLM),也不与HKCR,对一些人来说这是行不通的脚本。 6人中有4人曾尝试过,但没有发现任何问题,并且按照预期工作,但是对于2人而言,它没有发生任何问题。

这些条目在注册表中,但没有上下文菜单条目。

对于测试人员之一,编辑与jpegfile关键的GIMP项目,尽管存在于注册表,在右键菜单中没有显示任何。此外,对于相同的测试仪,上下文菜单的Preview条目显示为两次

In this thread你有关于程序本身和测试的更多信息。包含编译安装程序所需的所有文件的RAR文件可用here

这真的令我担心,我们无法找到解释为什么它不起作用。

+0

最有可能的是,没有工作的人拥有与“giffile”或“jpegfile”不同的ProgId关联的.gif和/或.jpg。 – Miral

+0

哦谢谢!我怎样才能使用Inno Setup将密钥添加到正确的ProgId中? –

+0

问题可能是由于权限造成的。您需要管理员权限才能在HKCR和HKLM中创建密钥 –

回答

1

最有可能的是,没有工作的人拥有与“giffile”或“jpegfile”不同的ProgId关联的.gif和/或.jpg。

你可以得到的Inno添加登记任何当前PROGID协会是像这样:

[Registry] 
Root: HKLM; Subkey: "SOFTWARE\Classes\{reg:HKLM\SOFTWARE\Classes\.jpg|jpegfile}\shell\Halve size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\Classes\{reg:HKLM\SOFTWARE\Classes\.jpg|jpegfile}\shell\Halve size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\himgr.exe"" ""%1""" 
Root: HKLM; Subkey: "SOFTWARE\classes\{reg:HKLM\SOFTWARE\Classes\.png|pngfile}\shell\Halve size"; Flags: uninsdeletekey 
Root: HKLM; Subkey: "SOFTWARE\classes\{reg:HKLM\SOFTWARE\Classes\.png|pngfile}\shell\Halve size\command"; ValueType: string; ValueName: ""; ValueData: """{app}\himgr.exe"" ""%1""" 

阿卜杜勒等你的其他条目。

请记住,如果用户稍后更改其文件关联(或安装了这样做的应用程序),那么这些选项可能会再次消失,直到它们重新运行安装程序。

相关问题