私は見た:
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://
、FTP://
などが呼び出されるURIスキーム
レジストリを介して独自に登録できます。
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
(Default)
ここでは空の文字列を意味します。文字通りそれを取らないでください。
メモ帳を開き、以下のコードを貼り付けます。「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>
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を本当に簡単にします。多くの場合、これが実際に必要なすべてです。Viz:
最初のセクションはプロトコルと呼ばれ、自分で登録できます。Windows(C#タグを指定してこれを実行していると想定している場合-申し訳ありませんが、Monoファン)では、レジストリを介して行われます。
このように実際に登録する必要はありません。私はエミュールのような多くのプログラムが独自のプロトコル固有のものを作成するのを見てきました(それが私がそれを呼ばれていると私が思うものです)。その後、基本的には、どのプログラムがそのプロトコルを処理するかについて、レジストリにいくつかの値を設定する必要があります。プロトコル指定子の公式のレジストリがあるかどうかはわかりません。ユーザーがブラウザからアプリを開くようにしたい場合は、独自のアプリケーション用に独自のプロトコル指定子を作成するのを止めることはあまりありません。