2012-11-26 51 views
7

我希望有人可以帮助我将以下内容转换为正确格式的InnoSetup [注册表项]在我的InnoSetup安装程序中使用?这里的目标是在用户的机器上创建一个新的自定义URL协议。创新安装程序注册表项为自定义URL协议

HKEY_CLASSES_ROOT  
     ctp 
      (Default) = "URL:Alert Protocol" 
      URL Protocol = "" 
      DefaultIcon 
       (Default) = "myapp.exe" 
      shell 
       open 
        command 
         (Default) = "C:\Program Files\MyApp\myapp.exe" 

我通过InnoSetup帮助文档阅读,但无法弄清楚如何翻译到上述适当InnoSetup注册表部分:

[Registry] 
Root: HKCR; Subkey: ".....etc. 

安装程序后的最终结果运行是用户点击格式为“ctp://myapp.exe”的网站上的链接,并且本地应用程序将在用户的计算机上启动。我正确地处理这个问题吗? 非常感谢您的回复。

+1

Essentiually,你需要添加一个'[注册]'为每个值条目。嵌套是不相关的,你只需要在'Key:'部分为每个值指定完整的键路径。有关示例,请参阅此[常见问题解答条目](http://www.jrsoftware.org/isfaq.php#assoc)。 – Deanna

+0

此外,不要忘记在您的['shell命令]中使用'%1'(http://msdn.microsoft.com/zh-cn/library/aa767914(v = vs.85).aspx#app_reg )值。 – TLama

回答

9

试试这样说:

[Registry] 
Root: HKCR; Subkey: "ctp"; ValueType: "string"; ValueData: "URL:Custom Protocol"; Flags: uninsdeletekey 
Root: HKCR; Subkey: "ctp"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: "" 
Root: HKCR; Subkey: "ctp\DefaultIcon"; ValueType: "string"; ValueData: "{app}\YourApp.exe,0" 
Root: HKCR; Subkey: "ctp\shell\open\command"; ValueType: "string"; ValueData: """{app}\YourApp.exe"" ""%1""" 
+0

TLama提供的答案非常完美!非常感谢。我还有一个问题。有没有办法检查在网页中是否存在使用javascript的本地文件?我不需要启动应用程序,我只需要在调用新的URL协议之前检查它是否存在,以及它是否不提示用户下载它。 – Tim

+0

不客气!如果它解决了你的问题,那么你可能会考虑['接受它'](http://meta.stackexchange.com/a/5235/179541)。给你另外的问题。这是一个单独的问题,请问(说实话,我甚至不能回答你,因为我不知道JavaScript)。感谢并欢迎来到StackOverflow! – TLama

相关问题