在IE中像迅雷那样通过右击链接打开程序
2008-03-18 18:00
357 查看
首先当然要在右击链接时的显示的菜单中添加数据项.添加的方法如下.
1.1 开始菜单-->运行-->用 RegEdit 命令打开注册表.建议首先备份注册表.
1.2 将注册点定位到"HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt", 在MenuExt 节点上点右键,选择 新建-->项.
1.3 给新建的项取一个名字,该名字就是后来在右击菜单时显示的名字.如果要设置快捷方式,可以用(&+字母)的方式.
1.4 给新建项的的默认值设置一个地址,比如E:/MyTest/TestIELink.html.当用户在IE的菜单中点击我们的菜单时,就会调用该文件,执行里面的脚本.我们待会会介绍怎么在文件中加入脚本,以执行我们自定义的程序.
1.5 给我们添加的自定义项再添加一个DWORD值.在右边的空白位置右键点击.新建-->DWORD(32-位)值.将名称改为:contexts(如果有填错,可以右击,选择重命名),双击contexts,在弹出的对话框中的数值数据项中输入20. contexts对象可以定义菜单在何时出现,我们可以使用它定义的值或组合.其值定义如下:
缺省 0x1 图片 0x2 控件 0x4 表单域 0x8 选择文本 0x10 锚点(链接) 0x20
如果我们想跟迅雷一样,想在图片和链接上点右键时显示我们的菜单,则可以输入22(图片+链接),如果没有设置contexts对象,则会在所有地方点击右键时显示我们定义的菜单.
最后的成果如下:
第二步就是编写脚本,以被调用,然后启动我们想要执行的程序.
2.1 打开记事本或者其它文本编辑器.输入:
1
<script type="text/javascript">
2
var win = window.external.menuArguments;
3
var arg = win.event.srcElement.href;
4
var wsh = new ActiveXObject("WScript.Shell");
5
var myExe = "/"E://My_App//RecIELink.exe/" "; //最后一个引号前有一个空格,因为我们要给启动的应用程序传入参数.
6
wsh.run(myExe + arg, 1, true); //这里后面的 1 使打开的窗体处于焦点中, true 为等待窗口执行完毕.
7
</script>
更多WScript Shell 对象请参见:http://msdn2.microsoft.com/en-us/library/aew9yb99.aspx
更多关于WScript.Shell 的 run 函数的参数请参见:http://msdn2.microsoft.com/en-us/library/d5fk67ky.aspx
2.2 将我们编写的内容保存到1.4中设置的地址下.如:E:/MyTest/TestIELink.html.
在这一步本人走了很多弯路,大约浪费了一个小时的时间来解决路径的问题.大家应该注意到.应用程序的路径前面都加了双引号.这传说是路径的一种约定,来解决路径中包含的空格等问题.我当时想在IE中启动FF,但是因为FF放在默认的路径下,所以一直提示路径出错,但是在没有空格的路径时就不会有什么问题.最后才了解到路径要加上引号,呵呵.如果大家在其它地方也遇到这样的问题,如路径中有空格时出错这样的怪问题,不妨给路径前后加上引号试试.
至此,我们就已经完成了大部门的工作,现在我们来编写一个C#程序,来接收我们转过来的链接参数.
3.1 打开VS,新建一个控制台项目.
3.2 Main函数修改如下:
1
static void Main(string[] args)
2
{
3
if (args.Length > 0)
4
{
5
Console.Write("I Recieved a link:");
6
Console.WriteLine(args[0]); //我们可以使用main中的args参数来获得我们传入的链接,并打印在屏幕上.
7
}
8
else
9
{
10
Console.WriteLine("Link lost
.");
11
}
12
Console.Read();
13
}
3.3 打程序拷贝到"E:/My_App/",并更名为RecIELink.exe.
好了,我们来测试一下我们的成果.
好了,你是否也成功了呢?
1.1 开始菜单-->运行-->用 RegEdit 命令打开注册表.建议首先备份注册表.
1.2 将注册点定位到"HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt", 在MenuExt 节点上点右键,选择 新建-->项.
1.3 给新建的项取一个名字,该名字就是后来在右击菜单时显示的名字.如果要设置快捷方式,可以用(&+字母)的方式.
1.4 给新建项的的默认值设置一个地址,比如E:/MyTest/TestIELink.html.当用户在IE的菜单中点击我们的菜单时,就会调用该文件,执行里面的脚本.我们待会会介绍怎么在文件中加入脚本,以执行我们自定义的程序.
1.5 给我们添加的自定义项再添加一个DWORD值.在右边的空白位置右键点击.新建-->DWORD(32-位)值.将名称改为:contexts(如果有填错,可以右击,选择重命名),双击contexts,在弹出的对话框中的数值数据项中输入20. contexts对象可以定义菜单在何时出现,我们可以使用它定义的值或组合.其值定义如下:
缺省 0x1 图片 0x2 控件 0x4 表单域 0x8 选择文本 0x10 锚点(链接) 0x20
如果我们想跟迅雷一样,想在图片和链接上点右键时显示我们的菜单,则可以输入22(图片+链接),如果没有设置contexts对象,则会在所有地方点击右键时显示我们定义的菜单.
最后的成果如下:
第二步就是编写脚本,以被调用,然后启动我们想要执行的程序.
2.1 打开记事本或者其它文本编辑器.输入:
1
<script type="text/javascript">
2
var win = window.external.menuArguments;
3
var arg = win.event.srcElement.href;
4
var wsh = new ActiveXObject("WScript.Shell");
5
var myExe = "/"E://My_App//RecIELink.exe/" "; //最后一个引号前有一个空格,因为我们要给启动的应用程序传入参数.
6
wsh.run(myExe + arg, 1, true); //这里后面的 1 使打开的窗体处于焦点中, true 为等待窗口执行完毕.
7
</script>
更多WScript Shell 对象请参见:http://msdn2.microsoft.com/en-us/library/aew9yb99.aspx
更多关于WScript.Shell 的 run 函数的参数请参见:http://msdn2.microsoft.com/en-us/library/d5fk67ky.aspx
2.2 将我们编写的内容保存到1.4中设置的地址下.如:E:/MyTest/TestIELink.html.
在这一步本人走了很多弯路,大约浪费了一个小时的时间来解决路径的问题.大家应该注意到.应用程序的路径前面都加了双引号.这传说是路径的一种约定,来解决路径中包含的空格等问题.我当时想在IE中启动FF,但是因为FF放在默认的路径下,所以一直提示路径出错,但是在没有空格的路径时就不会有什么问题.最后才了解到路径要加上引号,呵呵.如果大家在其它地方也遇到这样的问题,如路径中有空格时出错这样的怪问题,不妨给路径前后加上引号试试.
至此,我们就已经完成了大部门的工作,现在我们来编写一个C#程序,来接收我们转过来的链接参数.
3.1 打开VS,新建一个控制台项目.
3.2 Main函数修改如下:
1
static void Main(string[] args)
2
{
3
if (args.Length > 0)
4
{
5
Console.Write("I Recieved a link:");
6
Console.WriteLine(args[0]); //我们可以使用main中的args参数来获得我们传入的链接,并打印在屏幕上.
7
}
8
else
9
{
10
Console.WriteLine("Link lost
.");
11
}
12
Console.Read();
13
}
3.3 打程序拷贝到"E:/My_App/",并更名为RecIELink.exe.
好了,我们来测试一下我们的成果.
好了,你是否也成功了呢?
相关文章推荐
- 在IE中像迅雷那样通过右击链接打开程序
- 程序中通过IE或默认的浏览器打开指定的页面
- android下通过app名字打开程序(activity)链接
- [转]IE中自定义右击链接打开程序
- 通过java程序打开网页接受原码并进行数据爬取(链接方式)
- android下通过app名字打开程序(activity)链接
- IE访问HTTPS链接下载文件,IE提示无法下载 博客分类: J2EE 原因: (1) 在IE6/7下,使用HTTPS下载/打开文件时,通过抓包发现文件已传输,但IE提示“Internet E
- android下通过app名字打开程序(activity)链接
- 页面中通过点击链接打开本地文件夹或者远程的文件夹,IE完美支持,chrome和FireFox会出现问题
- 通过注册新协议实现网页链接打开本地程序
- IE如何让网页链接打开本地程序
- android下通过app名字打开程序(activity)链接
- 用程序写入到TREEVIEW 怎样在aspx实现象ie收藏夹那样的功能
- 如何在GridView中通过超级链接列打开服务器上的文档?
- Enterprise Library通过程序修改数据库链接的问题
- 点击TWebBrowser中的超级链接不在新的IE窗口打开
- Android——通过包名唤醒app,通过链接唤醒迅雷下载文件。
- androidandroid中的通过网页链接打开本地app
- iOS通过链接,应用内打开APP或者跳转APPStore对应下载
- Android中如何通过程序打开或关闭GPS