我一直在尝试创建一个自定义协议(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默认程序中列出。
答案 0 :(得分: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被替换为 “open_php_file:// [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\""
答案 1 :(得分:0)
Windows始终使用输入的完整URI替换%1。 AFAIK没有办法改变这种行为。
这给你两个选择: