1

我认为这是一个非常奇怪的问题,但无论如何......

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

它们已通过上下文菜单条目完成使用explorer.exe,因此我将安装程序配置为在注册表中创建一些键:

[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"""

完整的安装脚本在这里

注意:我也尝试过HKCR\jpegfile等,它对我有用,但是......

既不使用上面的脚本 (using HKLM) 也不使用 with HKCR,对于某些人来说它不起作用。6 人中有 4 人尝试过它没有任何问题,并且按预期工作,但有 2 人没有。

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

对于其中一位测试人员,该键的“使用 GIMP 编辑”条目jpegfile虽然存在于注册表中,但也未显示在上下文菜单中。此外,对于同一个测试人员,上下文菜单的预览条目显示了两次

在这个线程中,您可以获得有关程序本身和测试的更多信息。此处提供了包含编译安装程序所需的所有文件的 RAR 文件。

这真的让我担心,我们找不到任何解释为什么它不起作用。

4

1 回答 1

1

最有可能的是,它不适合的人有 .gif 和/或 .jpg 与与“giffile”或“jpegfile”不同的 ProgId 相关联。

您可以让 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"""

Abd 等其他条目。

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

于 2013-08-06T20:43:12.417 回答