2012-11-26 47 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

相關問題