惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 沧海依粟

针对IE6,IE7,Firefox设置不同的CSS 关于笔记本的CPU和显卡 5460 Ubuntu Server 安装 WordPress MU 时遇到的问题总结 PPM眼中合格的程序员,欢迎大家添加自己的看法 hi, Provence! Google的Picasa相册提供Blog嵌入功能 几个著名的Windows “伪”优化技巧 快来看看 WindowsVista中的新增命令 前几天在群里看到的很牛的关于Spring的一些介绍了...太牛8了... 香港回归十周年,纪念下. 呵呵,今天下了新版的Live Writer..插个地图玩下! 第一贴:恭喜 使用Firebug修改博客的样式(皮肤),并让Google Adsence美观的放在网页的顶端 P2P的超简单例子,仅做纪念. Outlook Express 后继有人啦!!Windows Live Mail Beta介绍. 域名DNS解析过程及原理 - 沧海依粟 世界上最乖的狗 Vista下安装Adobe Reader 8.0(中文版)出错的解决办法 - 沧海依粟
在IE中像迅雷那样通过右击链接打开程序
沧海依粟 · 2007-06-25 · via 博客园 - 沧海依粟

    今天在CSDN上看到有人在问在 IE 中,如何像迅雷那样,右键点击某个链接,在菜单中打开自定义的应用程序.
    网上 Google 了一下, 找了一些文章,整理了一下,分享下,希望对以后有这样应用的朋友有所帮助.

  1. 首先当然要在右击链接时的显示的菜单中添加数据项.添加的方法如下.
    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. 第二步就是编写脚本,以被调用,然后启动我们想要执行的程序.
    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, 1true); //这里后面的 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放在默认的路径下,所以一直提示路径出错,但是在没有空格的路径时就不会有什么问题.最后才了解到路径要加上引号,呵呵.如果大家在其它地方也遇到这样的问题,如路径中有空格时出错这样的怪问题,不妨给路径前后加上引号试试.
  3. 至此,我们就已经完成了大部门的工作,现在我们来编写一个C#程序,来接收我们转过来的链接参数.
    3.1 打开VS,新建一个控制台项目.
    3.2 Main函数修改如下:
         

     1static 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.
  4. 好了,我们来测试一下我们的成果.

    好了,你是否也成功了呢?
  • 安全快速不中毒的浏览器:
  • 写博客也能赚钱: