113

カスタムプロトコルをWindowsに登録して、電子メールまたはWebページのリンクをクリックすると、アプリケーションが開かれ、URLのパラメーターが渡されるようにするにはどうすればよいですか?

4

3 に答える 3

103
  1. タイプでStart次に移動->開く必要がありますFindregeditRegistry editor

  2. 次にクリックRight Mouseします->HKEY_CLASSES_ROOTNewKey

ここに画像の説明を入力

  1. キーで、URL を呼び出すための小文字の名前を指定します (私の場合は になります)。次に- >testus://sdfsdfsdfをクリックRight Mouseし、値なしで追加します。testusNewString ValueURL Protocol

ここに画像の説明を入力

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

ここに画像の説明を入力

  1. 動作するかどうかをテストするには、Internet Explorer(not Chromeor 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();
        }
    }
}

これで時間が節約できることを願っています。

于 2016-07-05T14:26:20.947 に答える
22

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

PS。URL パラメーターだけでなく、URL 全体を取得します。ただし、前述の %20 からスペースへの変換以外に、URL が何らかの誤用を受ける可能性があります。URL 構文の設計を保守的にすると役立ちます。ランダムな // を投入しないでください。そうしないと、file:// という混乱に陥ります。

于 2008-09-17T10:48:55.600 に答える