カスタムプロトコルをWindowsに登録して、電子メールまたはWebページのリンクをクリックすると、アプリケーションが開かれ、URLのパラメーターが渡されるようにするにはどうすればよいですか?
85089 次
3 に答える
103
タイプで
Start次に移動->開く必要がありますFindregeditRegistry editor次にクリックRight Mouseします->
HKEY_CLASSES_ROOTNewKey
- キーで、URL を呼び出すための小文字の名前を指定します (私の場合は になります)。次に- >
testus://sdfsdfsdfをクリックRight Mouseし、値なしで追加します。testusNewString ValueURL Protocol
- Right Mouse
New次に、プロトコル ( -> ) で行ったようにさらにエントリを追加し、-> -> - >Keyのような階層を作成し、内部で起動するパスに変更します。exe にパラメーターを渡したい場合は、パスを exe にラップします。に追加して、次のようにします。testusshellopencommandcommand(Default).exe"""%1""c:\testing\test.exe" "%1"
- 動作するかどうかをテストするには、
Internet Explorer(notChromeorFirefox) に移動してこれを入力すると、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 に答える


