玩转C科技.NET

从学会做人开始认识这个世界!http://volnet.github.io

导航

[翻译]注册协议(Register Protocol)

原文链接http://kb.mozillazine.org/Register_protocol

协议是一个用来通过连接来发送、接收和处理信息的方法。普通常见的浏览器协议包括http、https、ftp和mailto。为了你能够发送一个指定的协议来查看信息,你必须注册它们。如果你输入一个未知协议(如foo)的URL在你的定位符工具栏中,你将接收到一个这样的消息:“FireFox不知道如何打开这个地址,因为协议(foo)并不关联于任何程序或者在Mozilla Suite/SeaMonkey中,foo不是一个已经注册的协议”。(译注1)

一旦注册,协议就可以用你指定的程序进行处理,就像你的浏览器或者第三方的阅读器。这意味着一个超级链接(例如:foo://fred)可以使用协议foo来打开文件fred。(译注2)

内容:(以下链接指向原文)

[hide]

 

Windows

在Windows中,协议注册时写入操作系统的。例如,当你设置一个网页浏览器为默认浏览器,操作系统将注册http、https和ftp协议并且将它们关联到这个网页浏览器;当你在邮件消息或者一个互联网快捷方式中打开http、https和ftp链接的时候,这个URL将通过这个网页浏览器来打开。相似的,当你设置默认的邮件客户端,操作系统将注册mailto协议,以至于在浏览器中打开mailto链接的时候会打开这个关联的邮件应用程序。

注意: Mozilla Suite/SeaMonkey integrates mail and browser functions以至于一个邮件消息的网页链接(例如:http://链接)将在SeaMonkey浏览器窗体中打开,“mailto:”链接将在SeaMonkey Mail中打开,而不管操作系统中协议处理器的相关设置。

其他协议可以通过配置一个安装的程序被注册为关联到一个外部应用程序来处理相关内容。例如:你可以通过RealPlayer的“偏好”->“内容”->“媒体类型”设置为RTSP URLs注册相关的处理器为RealPlayer(Real-Time Streaming Protocol)。接下来当你再次打开rtsp://链接的时候,Firefox或者Mozilla Suite/SeaMonkey将在应用程序启动前询问你是否确定这个外部的协议请求。(译注3)

同样也可以通过创建一个像下面这样的.reg文件来注册协议,将它们改成文件:

REGEDIT4

[HKEY_CLASSES_ROOT\foo]
@="URL:foo Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\foo\shell]

[HKEY_CLASSES_ROOT\foo\shell\open]

[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Program Files\\Application\\program.exe\" \"%1\"" 
将foo替换为你指定的希望运行的程序C:\\Program Files\\Application\\program.exe。
注意:两个反斜干(\\)以及转义的引号(\")不应该被替换(必须的)。保存文件,然后双击它们以让他们插入Windows注册表。看看附加信息《Registering an Application to a URL Protocol
 
Linux和Mac

输入about:config到地址栏并敲入回车。

右键->新建->布尔->名字:网络.协议.处理器.外部.foo->值->true(用你指定的协议还原foo)

(英文版)Right-click -> New -> Boolean -> Name: network.protocol-handler.external.foo -> Value -> true (Replacing foo with the protocol you're specifying)

右键->新建->字符->名字:网络.协议.处理器.应用.foo->值->/path/to/app(用你指定的协议还原foo,并且path/to/app部分用你希望执行的应用程序路径来替换)

(英文版)Right-click -> New -> String -> Name: network.protocol-handler.app.foo -> Value -> /path/to/app (Replacing foo with the protocol you're specifying and /path/to/app with the path to the application you want to run.

确保network.protocol-handler.expose-all设置为true。(译注4)

 

解决纷争

(Linux和Mac)如果设置偏好的时候路径或者名字不正确,FireFox将显示错误为:“协议(foo)没有与任何程序关联。”(bug 312953)

如果你在Firefox使用mailto协议没有关联任何程序,请重新设置你的默认邮件客户端(default mail client.)。

默认情况下不安全的协议将被忽略(bug 173010).

 

关联

 

外部链接

The protocol is not associated with any program (Firefox Support)

 

译注

1.因为原文发布于mozillzaine,所以其以firefox为示例。

2.事实上,不是打开名为fred的文件。

3.默认安全设置下的Internet Explorer将不会询问,而Firefox将会询问。

4.如图所示

UrlProtocolFireFoxNetworkProtocol-HandlerExpose-All

posted on 2008-03-26 20:43  volnet(可以叫我大V)  阅读(3165)  评论(0编辑  收藏  举报

使用Live Messenger联系我
关闭