您的位置:首页 > 其它

超链接打开自定义的协议

2007-06-02 12:12 190 查看
想要IE或word点击超链接打开本地的EXE应用程序,这个怎么办?

比如点击这样的链接

<a href="vip:123-MonacoGP-19279-Senna">打开我的协议</a>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

将打开我的EXE应用程序?

首先你要修改注册表,要让IE看的懂像href="vip:123-MonacoGP-19279-Senna" 这样的协议.

c#如何写注册表?

//写注册表
RegistryKey key = Registry.ClassesRoot.CreateSubKey("vip");
key.SetValue("", "URL:vip Protocol");
key.SetValue("URL Protocol","");
RegistryKey Subkey= key.CreateSubKey("DefaultICon");
Subkey.SetValue("", "exe文件路径");
Subkey = key.CreateSubKey("shell").CreateSubKey("open").CreateSubKey("Command");
Subkey.SetValue("","exe文件路径");

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

这段代码是在 注册表 HKEY_CLASSES_ROOT 下新建vip 的键

结构是这样的

HKEY_CLASSES_ROOT
vip
(Default) = "URL:vip Protocol"
URL Protocol= ""
DefaultIcon
(Default) = "c:\somepath\APPTest.exe"
shell
open
command
(Default) = "c:\somepath\APPTest.exe" "%1"

创建完以后当你点击这样(vip:123-MonacoGP-19279-Senna)的链接,就可以打开外部的自己定义的应用程序了.

当然winform 应用程序还可以接收你传过来的值

比如 EXE应用程序启动的时候接收链接传过来的 123-MonacoGP-19279-Senna字符串,你可以在winform 启动的时候捕获这个值

[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
//arg[0]就是刚刚链接传过来的
// 赋值=arg[0];
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

如何给IE工具栏添加图标和按钮,菜单,打开自己的应用程序?
可以看看这篇
http://www.codeproject.com/useritems/CorKatIEExtension.asp

关于快速的操作注册表
你可以参考
http://www.codeproject.com/cs/system/quickregistry1.asp

本文来源http://www.codeproject.com/aspnet/APPHyperlinks.asp

//

上面所有链接文章的源代码下载地址

http://www.blogjava.net/Files/wujun/APPTest.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: