通过安装程序将应用程序注册到URL协议(所有浏览器)

时间:2008-12-13 05:34:52

标签: windows installer

我知道只要使用IE / firefox,就可以通过简单的注册表更改来完成此操作。但是,我想知道是否有一种可靠的方法可以为其他浏览器这样做,

我正在寻找一种通过安装程序执行此操作的方法,因此在特定浏览器中编辑首选项不会削减它。

3 个答案:

答案 0 :(得分:5)

这是我能想到的最好的:

IE http://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx

FireFox http://kb.mozillazine.org/Register_protocol

Chrome :由于其他所有浏览器似乎都支持相同的约定,因此我为chrome创建了bug

Opera :我找不到任何文档,但它似乎遵循与IE / Firefox相同的方法(参见上面的链接)

Safari :与Opera一样,它有效,但我找不到任何文档

答案 1 :(得分:2)

如果有人看起来像是一个Intranet网站的解决方案(适用于所有浏览器,不仅仅是IE),它包含指向共享服务器文件夹的超链接(就像我的情况一样),这是一个可能的解决方案:

  1. register protocol (URI scheme)通过注册表(这可以为我想的所有合作用户完成)。例如,“myfile:”方案。 (感谢Greg Dean的回答)
  2. 超链接href属性应该看起来像

    <a href='myfile:\\mysharedserver\sharedfolder\' target='_self'>Shared server</a>
    
  3. 编写一个控制台应用程序,将参数重定向到Windows资源管理器(有关此类应用程序的示例,请参阅步骤1)

  4. 这是我的测试应用程序:

    const string prefix = "myfile:";
    
    static string ProcessInput(string s)
    {
        // TODO Verify and validate the input 
        // string as appropriate for your application.
        if (s.StartsWith(prefix))
            s = s.Substring(prefix.Length);
    
        s = System.Net.WebUtility.UrlDecode(s);
    
        Process.Start("explorer", s);
    
        return s;
    }
    

    我认为您的管理员可以为所有内部网用户轻松安装此应用程序:)

    如果没有这个单独的应用,我无法设置方案设置来在资源管理器中打开此类链接。

答案 2 :(得分:2)

是。以下是使用FireFox的方法:

http://kb.mozillazine.org/Register_protocol

和Opera:

http://www.opera.com/support/kb/view/535/