2012-11-26 15 views
7

InnoSetupインストーラで使用する正しい形式のInnoSetup [レジストリ]エントリに次の文字を翻訳するのを手伝ってくれることを祈っていますか?ここでの目標は、ユーザーのマシンに新しいカスタムURLプロトコルを作成することです。私はInnoSetupヘルプドキュメントを読みますが、適切なInnoSetupレジストリセクションに上記の変換する方法を見つけ出すことができませんでしたInno Setupカスタム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" 

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

最終結果を、インストーラを実行した後は、ユーザーということです「ctp://myapp.exe」と書かれたウェブサイト上のリンクをクリックすると、そのローカルアプリケーションがユーザのマシンで起動します。私はこれに正しくアプローチしていますか? お返事ありがとうございました。

+1

Essentiually、あなたはそれぞれの値のための単一の '[レジストリ]'エントリを追加する必要があります。入れ子は無関係で、 'Key:'セクションで各値への完全なキーパスを指定するだけです。例については、この[FAQ](http://www.jrsoftware.org/isfaq.php#assoc)を参照してください。 – Deanna

+0

また、あなたの['shell command']で'%1'を使うことを忘れないでください(http://msdn.microsoft.com/en-us/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が提供する回答は完全に機能します!本当にありがとう。私はもう一つ質問があります。 Webページにjavascriptを使ってローカルファイルが存在するかどうかを確認する方法はありますか?私はアプリを起動する必要はありません、私はちょうどそれが新しいURLプロトコルを呼び出す前に存在するかどうかを確認し、それをダウンロードするようにユーザーに求めていないかどうか確認する必要があります。 – Tim

+0

あなたは大歓迎です!あなたの質問を解決した場合は、[これをこの方法で受け入れる]と考えるかもしれません(http://meta.stackexchange.com/a/5235/179541)。あなたの追加質問に。これは別の質問としてお願いします(JavaScriptが分からないので、正直言って、私はあなたにも答えられません)。ありがとう、歓迎StackOverflow! – TLama