5

「myapp://website.com」スタイルの URI を介して起動するように、Windows でテスト アプリケーションをセットアップしようとしています。ほとんどの場合、私は次のようなチュートリアルに基づいています。

http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx

HKEY_CLASSES_ROOT 内で初期セットアップが機能するようになりましたが、新しい制約は、管理者アクセスを必要とせずにインストールを行うことです。そこで、CLASSES_ROOT のすべての変更を削除し、HKEY_CURRENT_USER/Software/Classes/myapp にある HKEY_CURRENT_USER ブランチを使用して、レジストリの追加を再試行することにしました。

これはブラウザによって検出されたようで、確認ダイアログが表示されます。ただし、実際にアプリを実行することはありません。Internet Explorer では、「{uri} のこのヘルパー アプリケーションを開けません。このアドレスで指定されたプロトコルが無効です。アドレスが正しいことを確認してから、やり直してください。

管理者以外のセットアップで不足しているレジストリの一部はありますか? これは私の変更を .reg としてエクスポートしたものです。(私のユーザー名を検閲するダッシュ)。EditFlags は推測で追加されましたが、これがないと機能しませんでした。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\myapp]
"URL Protocol"=""
@="URL:David Protocol"
"EditFlags"=dword:02000000

[HKEY_CURRENT_USER\Software\Classes\myapp\DefaultIcon]
@="C:\\Users\\------\\AppData\\Roaming\\-----s Stuffs\\URISchemeTest.exe,1"

[HKEY_CURRENT_USER\Software\Classes\myapp\shell]

[HKEY_CURRENT_USER\Software\Classes\myapp\shell\open]

[HKEY_CURRENT_USER\Software\Classes\myapp\shell\open\command]
@="\"C:\\Users\\-------\\AppData\\Roaming\\------s Stuffs\\URISchemeText.exe\" \"%1\""
4

2 に答える 2

-1

MSDN の記事に書かれていることを無視することはできません。プロトコル ハンドラを HKCR キーに登録することは難しい要件です。

これには十分な理由があり、記事でもかなり明確に述べられていますが、プロトコル ハンドラーは危険です。それらは、任意の Web ページがマシン上でプログラムを開始できるようにします。それらは、危険な操作を停止するサンドボックス内でコードを実行する厳重に保護されたランタイム環境のもう 1 つの例である Store アプリ内でも機能します。

HKCR を文書化しても、これを解明するのにはあまり役立ちません。これは 16 ビット コードの appcompat を対象としており、現在はエイリアスです。HKCU キーと HKLM キーの両方をマージしたビューを示します。HKLM キーは HKCU キーとは異なり、キー値を書き込むには昇格が必要です。昇格されたセキュリティ トークンを取得できるプログラムのみが、新しい値を作成したり変更したりできます。通常は、UAC プロンプトを介して取得されます。HKCU キーの問題は、どのプログラムでも昇格なしでそこにキーを書き込むことができることです。プロトコル ハンドラを HKCU キーに登録できると、セキュリティ ホールが発生します。したがって、これは機能しません。urlmon は、プロトコル ハンドラーを見つけるために HKCU キーを調べません。

于 2014-05-11T15:58:05.247 に答える