電子メールまたはWebページのリンクをクリックするとアプリケーションが開かれ、URLのパラメーターが渡されるように、カスタムプロトコルをWindowsに登録するにはどうすればよいですか?
回答:
行くStart
には、その後Find
タイプregedit
- >それは開く必要がありますRegistry editor
クリックRight MouseでHKEY_CLASSES_ROOT
、その後New
- >Key
testus://sdfsdfsdf
)、[OK]をクリックしますRight Mouse上testus
- >その後、New
- >String Value
と追加URL protocol
値なし。New
-> Key
)で行ったようにエントリを追加し、testus
-> shell
-> open
->のような階層を作成し、起動するパスにcommand
内部command
変更(Default)
を加え.exe
ます。パラメータをexeに渡したい場合は、パスをexeにラップします。で""
追加"%1"
すると、次のようになります。"c:\testing\test.exe" "%1"
Internet Explorer
(notChrome
またはFirefox
)に移動してtestus:have_you_seen_this_man
これを入力すると、.exe
(これを実行したいというプロンプトが表示されます-「はい」と言って)を起動し、argsに渡しtestus://have_you_seen_this_man
ます。テストするコンソールアプリのサンプルは次のとおりです。
using System;
namespace Testing
{
class Program
{
static void Main(string[] args)
{
if (args!= null && args.Length > 0)
Console.WriteLine(args[0]);
Console.ReadKey();
}
}
}
これで時間を節約できれば幸いです。
これはMSDNでカバーされていると思います。URLプロトコルへのアプリケーションの登録を参照してください。
MSDNリンクはすばらしいですが、そこにあるセキュリティ情報は完全ではありません。ハンドラー登録には、%1ではなく「%1」を含める必要があります。一部のURLソースは、カスタムプロトコルハンドラーを呼び出す前に%20を誤ってデコードするため、これはセキュリティ対策です。
PS。URLパラメータだけでなく、URL全体を取得します。ただし、前述の%20->スペース変換に加えて、URLは何らかの虐待を受ける可能性があります。URL構文の設計を保守的にするのに役立ちます。//ランダムにスローしないでください。そうしないと、file://が混乱することになります。