我一直在尝试创build一个自定义协议(open_php_file://)来通过浏览器打开本地文件。 我创build了以下registry项:
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默认程序中列出。
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\""
Windows始终使用输入的完整URI替换%1。 AFAIK没有办法改变这种行为。
这给你两个选择: