Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 已写入上下文菜单项的注册表项,但没有上下文菜单项_C#_Registry_Inno Setup - Fatal编程技术网

C# 已写入上下文菜单项的注册表项,但没有上下文菜单项

C# 已写入上下文菜单项的注册表项,但没有上下文菜单项,c#,registry,inno-setup,C#,Registry,Inno Setup,我认为这是一个非常奇怪的问题,但无论如何 我创建了两个C#应用程序,himgr.exe和cimgr.exe。它们使用Inno安装程序安装,并复制到C:\Program Files[(x86)]\Imgr Suite 它们是通过explorer.exe上的上下文菜单项来使用的,因此我将安装程序配置为在注册表中创建几个键: [Registry] Root: HKLM; Subkey: "SOFTWARE\classes\jpegfile\shell\Halve size"; Flags: unins

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

我创建了两个C#应用程序,
himgr.exe
cimgr.exe
。它们使用Inno安装程序安装,并复制到
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\JPEG文件
等,它对我有效,但

无论是使用上面的脚本(使用
HKLM
),还是使用
HKCR
,对某些人来说都不起作用。6名试用者中有4名没有出现任何问题,并且按照预期工作,但有2名没有

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

对于其中一个测试人员来说,
jpegfile
键的Edit with GIMP条目虽然存在于注册表中,但也没有显示在上下文菜单中。此外,对于同一测试仪,上下文菜单的预览条目显示了两次

您有关于程序本身和测试的更多信息。有一个RAR文件,其中包含编译安装程序所需的所有文件


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

最有可能的是,它没有为之工作的人将.gif和/或.jpg与不同于“giffile”或“jpegile”的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等等,用于您的其他条目


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

最有可能的情况是,没有为其工作的用户将.gif和/或.jpg与不同于“giffile”或“jpegile”的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等等,用于您的其他条目


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

最有可能的情况是,没有为其工作的人将.gif和/或.jpg与“giffile”或“jpegile”以外的ProgId关联。哦,谢谢!如何使用Inno Setup向正确的ProgId添加密钥?问题可能是由于权限问题。您需要管理员权限才能在HKCR和HKLM中创建密钥。最有可能的是,它不为其工作的人已将.gif和/或.jpg与不同于“giffile”或“jpegile”的ProgId关联。噢,谢谢!如何使用Inno Setup向正确的ProgId添加密钥?问题可能是由于权限问题。您需要管理员权限才能在HKCR和HKLM中创建密钥