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