我一直在试图创建一个自定义协议(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默认programms的上市。
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\""
基本上,问题是在你的protocol.Once下划线去掉一切开始工作fine.You可以改变的可执行文件路径按你的愿望,即“C:\ Program Files文件(x86)的\ NuSphere \ 7.0 \ phped.exe”。
我试图openphpfile:blast
和它的工作相当不错:)
编辑:
该解决方案的问题是,1%被替换为“open_php_file:// [文件]”,而不只是“[文件]”。 这样,我需要一些类型的过滤器是砍“open_php_file://”。
把openphpfile后空间:[空格] Your_Content和更改参数%2,你会得到预期的结果
[HKEY_CLASSES_ROOT\openphpfile\shell\open\command]
@="\"C:\\Users\\ABC\\Documents\\Programs\\CB\\Chunks\\CGI.exe\" -c \"%2\""
Windows总是与已输入完整的URI替换%1。 据我所知是没有办法来改变这种行为。
这使你两个选择:
- 如果你已经写了被称为自己的程序,可以被调用时过滤的URI。
- 可以使用充当所述URI的过滤器,然后将结果与实际协议实现转发中间程序。 幸运的是,有人已经做了这一点。 参见' CustomURL CodePlex上'。 CustomURL是注册自定义URL协议的小工具。 //协议与远程桌面客户端或SSH:用腻子或其他SSH客户端//协议例如,您可以在RDP关联。