7

ブラウザーを介してローカル ファイルを開くためのカスタム プロトコル (open_php_file://) を作成しようとしています。次の登録キーを作成しました。

HKEY_CLASSES_ROOT
     open_php_file
          (Default) = "URL:PHPEd protocol"
          URL Protocol = ""
          DefaultIcon
               (Default) = "phped.exe"
          shell
               open
                    command
                         (Default) = "C:\Program Files (x86)\NuSphere\7.0\phped.exe" "%1"

問題は、ブラウザでファイルを開くことができず (例: open_php_file://c:\file.txt)、Windows のデフォルト プログラムにプロトコルがリストされていないことです。

4

2 に答える 2

9
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\openphpfile]
@="\"URL:openphpfile Protocol\""
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""

[HKEY_CLASSES_ROOT\openphpfile\DefaultIcon]
@="\"C:\\Users\\ABC\\Documents\\Programs\\CB\\Chunks\\CGI.exe\",0"

[HKEY_CLASSES_ROOT\openphpfile\shell]

[HKEY_CLASSES_ROOT\openphpfile\shell\open]

[HKEY_CLASSES_ROOT\openphpfile\shell\open\command]
@="\"C:\\Users\\ABC\\Documents\\Programs\\CB\\Chunks\\CGI.exe\" -c \"%1\""

基本的に、問題はプロトコルのアンダースコアにありました。削除すると、すべてが正常に機能し始めました。実行可能ファイルのパスは、「C:\Program Files (x86)\NuSphere\7.0\phped.exe」など、必要に応じて変更できます。

私は試しopenphpfile:blastてみましたが、かなりうまくいきました:)

編集:

このソリューションの問題点は、%1 が "[file]" ではなく "open_php_file://[file]" に置き換えられることです。このように、「open_php_file://」を切り取る何らかのフィルターが必要です。

openphpfile:[Space]Your_Content の後にスペースを入れ、パラメーターを %2 に変更すると、期待される結果が得られます

[HKEY_CLASSES_ROOT\openphpfile\shell\open\command]
@="\"C:\\Users\\ABC\\Documents\\Programs\\CB\\Chunks\\CGI.exe\" -c \"%2\""
于 2012-08-05T19:27:33.423 に答える
0

Windowsは常に%1を入力された完全なURIに置き換えます。AFAIKその動作を変更する方法はありません。

これには2つのオプションがあります。

  1. 自分で呼び出されるプログラムを作成した場合は、呼び出されるときにURIをフィルタリングできます。
  2. URIのフィルターとして機能し、結果を実際のプロトコル実装に転送する中間プログラムを使用できます。あなたにとって幸いなことに、誰かがすでにそれを正確に行っています。CodePlexの「 CustomURL 」を参照してください。CustomURLは、カスタムURLプロトコルを登録するための小さなユーティリティです。たとえば、rdp://プロトコルをリモートデスクトップクライアントに関連付けたり、ssh://プロトコルをPuttyまたは別のSSHクライアントに関連付けたりできます。
于 2012-08-05T19:34:03.447 に答える