2012-07-26 11 views
7

私は、ブラウザからローカルファイルを開くためにカスタムプロトコル(open_php_file://)を作成しようとしていました。カスタムプロトコルの作成(Windows 7)

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など)、およびプロトコルISN」私は、次のregistery-のキーを作成しましたWindowsのデフォルトのプログラムにリストされていません。 \プログラムファイル(x86の)\ NuSphere \ 7.0:

+1

http://stackoverflow.com/questions/80650/how-do-i-register-a-custom-url-protocol-in-windows?rq=1 –

+1

この解決策の問題は、%1 "[file]"ではなく "open_php_file:// [file]"と置き換えられます。このように、私は "open_php_file://"をチョップする何らかのフィルタを必要とします。 – Simon

答えて

8
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\"" 

は基本的に問題はすべてがfine.Youがあなたの願いすなわち「Cに従って実行可能ファイルのパスを変更することができます作業を開始して除去あなたprotocol.Onceにアンダースコアとしました\ phped.exe "と入力します。

は私が openphpfile:blastを試してみましたが、それは非常にうまく働いた:)

EDIT:

この解決策の問題は、%1は に置き換えてしまうことです "open_php_file:// [ファイル]" の代わりにちょうど "[ファイル]"。このようにして、私は "open_php_file://"をチョップするフィルタを必要とします。

openphpfileの後にスペースを入れて:あなたが期待される結果

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

興味深いのは、 'EditFlags'値と' DefaultIcon'キーを追加せずに動作します。 Win7でこれを使用していただきありがとうございます。 – Blagoh

+0

@perilbrainこのソリューションはWindows 7ではうまく動作しますが、Windows 10では正常に動作しません.Windows 10では何かを提案できますか? –

0

を取得します[スペース] Your_Contentと変更パラメータを%2にWindowsは常に入力された完全なURIで%1に置き換えられます。 AFAIKにはその行動を変える方法がありません。

これは、次の2つのオプションの葉:

  1. あなた自身が呼び出されているプログラムを書いた場合は、それが呼び出されているとき、あなたはURIをフィルタリングすることができます。
  2. URIのフィルタとして機能し、その結果を実際のプロトコル実装に転送する中間プログラムを使用できます。幸いなことに、誰かがすでにそれを正確に行っています。 CodePlexの 'CustomURL'を参照してください。 CustomURLは、カスタムURLプロトコルを登録するための小さなユーティリティです。たとえば、rdp://プロトコルをRemote Desktop Clientに、またはssh://プロトコルをPuttyまたは別のSSHクライアントに関連付けることができます。
関連する問題