私は見た:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
http
などが呼び出される最初のセクションは何ですか?
自分で登録できますか?
HTTP://
、FTP://
などの部分は、 RIスキーム と呼ばれます
レジストリから独自に登録できます。
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側の詳細については、 MSDNの非同期プラグ可能プロトコルについて を参照してください。 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>
VC8以上のコンパイラに含まれるstrsafeおよび新しいセキュアなCRTメソッドの使用を強く検討してください。 http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx を参照してください。私が何を話しているのかわからない場合。
登録済みの RIスキーム のリストを次に示します。それぞれにRFCがあります-それを定義するドキュメントであり、ほぼ標準です。 RFCは、新しいアプリケーション(ブラウザ、ftpクライアントなど)の開発者に、サポートする必要があるものを伝えます。新しいベースレベルのプロトコルが必要な場合は、未登録のプロトコルを使用できます。他の回答では、その方法を説明しています。既存のプロトコルで多くのことを実行できるため、既存の実装を取得できることに留意してください。
ほとんどのMicrosoft製品(Internet Explorer、Office、「ファイルを開く」ダイアログなど)では、適切なプレフィックスを持つURIが開かれたときに実行される アプリケーションの登録 を実行できます。これは、より一般的な 説明 -独自のプロトコルの実装方法の一部です。
プロトコルと呼ばれます。独自のプロトコルを作成できないのは、次のことだけです。
Windowsを使用すると、#1が非常に簡単になります。多くの場合、実際に必要なのはこれだけです。 Viz:
最初のセクションはプロトコルと呼ばれ、はい、独自に登録できます。 Windows(C#タグを指定してこれを実行していると想定している-Monoファンの皆さん)、これは完了です レジストリ経由 。