C#实现通过URL触发自己的程序
实现原理:http://hi.baidu.com/wu1987116/blog/item/8352896056ea254deaf8f83e.html
本例功能:在IE访问baidu:内容时,将baidu:内容做为启动参数,执行ceshi.exe程序,在程序中将内容作为搜索
内容,执行百度搜索
实现步骤:
在VS2005中新建Windows应用程序
在Program.cs文件的中的static void Main()
方法中加入代码:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (System.Environment.GetCommandLineArgs().Length > 1) //如果有启动参数
{
string strCmd = System.Environment.GetCommandLineArgs()[1].ToLower();
string startCmd = "http://www.baidu.com/s?wd=" + strCmd.Replace("baidu:", "");
System.Diagnostics.Process.Start(startCmd);
}
else
{
MessageBox.Show("参数错误!", "提示");
}
}
生成exe文件
导入如下注册表信息:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\baidu]
@=""
"URL Protocol"=""
[HKEY_CLASSES_ROOT\baidu\Shell]
[HKEY_CLASSES_ROOT\baidu\Shell\Open]
[HKEY_CLASSES_ROOT\baidu\Shell\Open\Command]
@="D:\\ceshi.exe %1"
"D:\\ceshi.exe %1" 为生成的程序路径,
此注册表所实现的就是当浏览器(或其它)碰到 baidu:… 时,自动调用 ceshi.exe,并把 baidu:… 地址作为参数传递给 ceshi.exe,并通过ceshi.exe判断传入的参数格式,执行操作