创建自定义协议(Windows 7中)(Creating Custom Protocol (Wind

2019-06-26 13:55发布

我一直在试图创建一个自定义协议(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的上市。

Answer 1:

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


Answer 2:

Windows总是与已输入完整的URI替换%1。 据我所知是没有办法来改变这种行为。

这使你两个选择:

  1. 如果你已经写了被称为自己的程序,可以被调用时过滤的URI。
  2. 可以使用充当所述URI的过滤器,然后将结果与实际协议实现转发中间程序。 幸运的是,有人已经做了这一点。 参见' CustomURL CodePlex上'。 CustomURL是注册自定义URL协议的小工具。 //协议与远程桌面客户端或SSH:用腻子或其他SSH客户端//协议例如,您可以在RDP关联。


文章来源: Creating Custom Protocol (Windows 7)