私は見た:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
あなたが見るhttp
などの最初のセクションは何と呼ばれますか?
自分で登録できますか?
私は見た:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
あなたが見るhttp
などの最初のセクションは何と呼ばれますか?
自分で登録できますか?
HTTP://
、などの部分はURI スキームFTP://
と呼ばれます。
レジストリを介して独自に登録できます。
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
ソース: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml、 http ://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
メモ帳を開き、以下のコードを貼り付けます。「YourApp」をアプリの名前に変更します。YourApp.reg に保存し、エクスプローラーでクリックして実行します。それでおしまい!乾杯!アーウィン・ハンチェス
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
これはブラウザーごとに異なります。IE と Windows では、プラグ可能なプロトコル ハンドラーと呼ばれるものを作成する必要があります。
基本的な手順は次のとおりです。
Windows 側の詳細については、MSDN の About Asynchronous Pluggable Protocols を参照してください。Windows SDK にもサンプルがあります。
簡単なグーグルでもコードプロジェクトに関するこの記事を示しました: http://www.codeproject.com/KB/IP/DataProtocol.aspx。
最後に、セキュリティ担当者として、このコードは強化する必要があることを指摘しなければなりません。確実に実行するには、マネージド コードでは実行できず、C++ で実行する必要があるため、リスクが高くなります (VB6 を使用できると思います)。本当にこれを行う必要があるかどうかを検討する必要があります。必要な場合は、慎重に設計し、安全にコーディングしてください。攻撃者は、ページにリンクを含めるだけで、渡されたコンテンツを簡単に制御できます。たとえば、単純なバッファ オーバーフローが発生した場合は、次のようにする方がよいでしょう。<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
strsafe と、VC8 以降のコンパイラに含まれる新しいセキュア CRT メソッドの使用を強く検討してください。私が何について話しているのかわからない場合は、http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspxを参照してください。
登録されているURI スキームの一覧は次のとおりです。それぞれに RFC があります。これは、RFC を定義するドキュメントであり、ほぼ標準です。RFC は、新しいアプリケーション (ブラウザー、ftp クライアントなど) の開発者に、何をサポートする必要があるかを伝えます。新しい基本レベルのプロトコルが必要な場合は、未登録のプロトコルを使用できます。他の答えはあなたにその方法を教えてくれます。既存のプロトコルを使用して多くのことを実行できるため、既存の実装を取得できることに注意してください。
ほとんどの Microsoft 製品 (Internet Explorer、Office、「ファイルを開く」ダイアログなど) では、適切なプレフィックスを持つ URI が開かれたときに実行されるアプリケーションを登録できます。これは、より一般的な説明の一部です。独自のプロトコルを実装する方法です。
プロトコルといいます。独自のプロトコルを作成することを妨げる唯一のことは、次のことを行う必要があることです。
Windows は 1 番を非常に簡単にします。多くの場合、これだけで十分です。ビズ:
最初のセクションはプロトコルと呼ばれ、はい、独自に登録できます。Windows では (C# タグを指定してこれを行っていると想定しています。Mono ファンには申し訳ありません)、レジストリを介して行われます。
そのような登録を実際に行う必要はありません。私は emule のような多くのプログラムが独自のプロトコル固有のものを作成するのを見てきました (それは私がそれを呼んでいるものだと思います)。その後、基本的には、どのプログラムがそのプロトコルを処理するかについて、レジストリにいくつかの値を設定する必要があります。プロトコル指定子の公式レジストリがあるかどうかはわかりません。人々に自分のアプリをブラウザから開いてもらいたいのであれば、自分のアプリケーション用に独自のプロトコル指定子を作成することを止める理由はほとんどありません。