WindowsでカスタムURLプロトコルを登録するにはどうすればよいですか?


回答:


65
  1. 行くStartには、その後Findタイプregedit- >それは開く必要がありますRegistry editor

  2. クリックRight MouseHKEY_CLASSES_ROOT、その後New- >Key

ここに画像の説明を入力してください

  1. キーであなたは、URLが呼び出されるしたいことで小文字の名前を付けて(私の場合、それはなりますtestus://sdfsdfsdf)、[OK]をクリックしますRight Mousetestus- >その後、New- >String Valueと追加URL protocol値なし。

ここに画像の説明を入力してください

  1. 次に、プロトコル(Right Mouse New-> Key)で行ったようにエントリを追加し、testus-> shell-> open->のような階層を作成し、起動するパスにcommand内部command変更(Default)を加え.exeます。パラメータをexeに渡したい場合は、パスをexeにラップします。で""追加"%1"すると、次のようになります。"c:\testing\test.exe" "%1"

ここに画像の説明を入力してください

  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();
        }
    }
}

これで時間を節約できれば幸いです。


3
うわー、これはうまくいきます。そしてIEだけでなくChromeでも!
user19745 6619

36

これはMSDNでカバーされていると思います。URLプロトコルへのアプリケーションの登録を参照してください。


5
私はoauthベースのアプリケーションを作成していましたが、MSDNで説明されている手順は、Mozilla FirefoxおよびOpera(11.6)で完全に機能します
Viktor Latypov 2012

11
これは、Windows上のすべてのブラウザで機能します。これはOSレベルのものであり、ブラウザレベルのものではありません。
Andrew Dunkman 2013年

7
私は賛成しましたが、SOポリシーに従って、リンクからの関連情報を含めるように回答を編集してください。ありがとう!
dotancohen 2014年

どのWindowsバージョンがこれをサポートしていますか?
ᆼᆺᆼ2016

21

MSDNリンクはすばらしいですが、そこにあるセキュリティ情報は完全ではありません。ハンドラー登録には、%1ではなく「%1」を含める必要があります。一部のURLソースは、カスタムプロトコルハンドラーを呼び出す前に%20を誤ってデコードするため、これはセキュリティ対策です。

PS。URLパラメータだけでなく、URL全体を取得します。ただし、前述の%20->スペース変換に加えて、URLは何らかの虐待を受ける可能性があります。URL構文の設計を保守的にするのに役立ちます。//ランダムにスローしないでください。そうしないと、file://が混乱することになります。


「file://の混乱」とはどういう意味ですか?
マレエフ

6
ファイルの正式なマッピングはありません:URLからローカルパスへ。パスがWindowsディレクトリを参照している場合、2つまたは3つの先頭のスラッシュの使用、または円記号と円記号の使用についてのコンセンサスすらありません。
MSalters 2009年

遅いコメント、私は知っています。しかし、プロトコルハンドラーなしで、どういうわけかURLパラメーターのみにアクセスすることも可能ですか?
Danilo Bargen 2010年

2
それは別の質問のように聞こえます。ただし、条件をまっすぐにしてください。プロトコルハンドラは、URLを受信するプログラムです。「プロトコルハンドラがなければ」、URLを解析してURLパラメータにアクセスする人は誰もいません。
MSalters 2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.