CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

如何用C#写类似如NetAnts在IE右键菜单中调用的组件,在线等待,谢谢

楼主erich2000(豆豆)2002-12-05 10:30:30 在 .NET技术 / C# 提问

如何用C#写类似如NetAnts在IE右键菜单中调用的组件,在线等待,谢谢 问题点数:0、回复次数:1Top

1 楼dy_2000_abc(芝麻开门)回复于 2002-12-05 14:25:32 得分 0

以前的方法是使用CreateObject方法调用com组件,在.net中会不会有其他方法?如果有请告知。  
   
          step   by   step   ,下面的步骤手工实现在IE右菜单加入新项,新项指向你的程序。了解了这个原理,在程序中实现下面的步骤不是很难。  
   
  1   写一个.cs文件abc.cs,内容如下:  
  using   System;  
  using   System.Windows.Forms;  
  using   System.Reflection;  
  [assembly:   AssemblyKeyFileAttribute("mykey.snk")]  
  namespace   abc  
  {  
  public   class   abc  
  {  
  public   void   ShowMe(string   url,string   info)  
  {  
  MessageBox.Show(url+","+info);  
  }  
  }  
  }  
   
  2   在abc.cs的同一目录下打开命令行,键入   sn   -k   mykey.snk,执行。这时,生成一个新文件mykey.snk。  
   
  3   再键入:csc   /t:library   abc.cs,这时,生成一个abc.dll  
   
  4   再键入:gacutil   /i   abc.dll,这一句将生成的dll安装到全局高速缓存  
   
  5   再键入:regasm   abc.dll,这一句对abc.dll进行注册,abc.dll被注册后,所有的com客户多可以访问它。  
   
  6   打开注册表,在HKEY_CURRENT_USER\Software\Microsoft\Internet   Explorer\MenuExt项下建立一个新项,项的名称也就是出现在菜单中的标题,比如你想建立的菜单项标题为ShowMe,则新建项的名称为HKEY_CURRENT_USER\Software\Microsoft\Internet   Explorer\MenuExt\   ShowMe  
  7   将ShowMe的默认值设定为一个URL地址,当用户点击菜单项后,IE就会调用URL指向的页面中的脚本,这里的脚本文件(abc.htm)在下面给出。比如,脚本文件abc.htm在e盘,这个地址就是e:\abc.htm  
  8   在ShowMe下新建一个DWORD键值contexts,该键值定义了该上下文菜单在何种情况下显示。在IE中右击有7种情况。  
  1)为默认情况,就是右击空白区域,键值contexts对应于0X1  
  2)在图形上右击,键值contexts对应于0X2  
  3)在控制上右击,键值contexts对应于0X4  
  4)在表格上右击,键值contexts对应于0X8  
  5)在选择区域上右击,键值contexts对应于0X10  
  6)在超级链接上右击,键值contexts对应于0x20  
  7)在不能确定的部分右击,键值contexts对应于0x40.  
  这7种情况可以组合起来,如contexts为0X7F,表示这7种情况都适用。  
   
          至于那个脚本文件如何写,你可以参照下面的文件,它是我从网际快车稍加修改拿过来的。你也可以参考http://expert.csdn.net/Expert/topic/1180/1180725.xml?temp=.8665125  
   
  脚本文件abc.htm   :  
  <script   language="VBScript">  
  Sub   AddLink(Url,Info)    
  On   Error   Resume   Next  
  set   JetCarCatch=CreateObject("abc.abc")  
  if   err<>0   then  
  MsgBox("FlashGet   not   properly   installed!"+   vbCrLf+"Please   install   FlashGet   again")  
  else  
  call   JetCarCatch.ShowMe(Url,   Info)  
                  end   if  
  end   sub  
   
  Sub   OnContextMenu()  
  set   srcEvent   =   external.menuArguments.event  
  set   EventElement   =   external.menuArguments.document.elementFromPoint   (   srcEvent.clientX,   srcEvent.clientY   )  
  if   srcEvent.type   =   "MenuExtAnchor"   then    
  set   srcAnchor   =   EventElement  
  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  
  set   srcAnchor=srcAnchor.parentElement  
  Loop  
  Call   AddLink(srcAnchor.href,srcAnchor.innerText)  
  elseif   srcEvent.type="MenuExtImage"   then  
  if   TypeName(EventElement)="HTMLAreaElement"   then  
  Call   AddLink(EventElement.href,EventElement.Alt)  
  else    
  set   srcImage   =   EventElement  
  set   srcAnchor   =   srcImage.parentElement  
  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  
  set   srcAnchor=srcAnchor.parentElement  
  if   TypeName(srcAnchor)="Nothing"   then    
  call   AddLink(srcImage.href,srcImage.Alt)  
  exit   sub  
  end   if  
  Loop  
  Call   AddLink(srcAnchor.href,srcImage.Alt)  
  end   if  
  elseif   srcEvent.type="MenuExtUnknown"   then  
  set   srcAnchor   =   EventElement  
  do   until   TypeName(srcAnchor)="HTMLAnchorElement"  
  set   srcAnchor=srcAnchor.parentElement  
  if   TypeName(srcAnchor)="Nothing"   then    
  Call   AddLink(EventElement.href,EventElement.innerText)  
  exit   sub  
  end   if  
  Loop  
  Call   AddLink(srcAnchor.href,srcAnchor.innerText)  
  elseif   1=1   then  
  MsgBox("Unknown   Event   Source   """   +   srcEvent.type   +   """"   +   vbCrLf   +   "Please   send   description   of   error   to   jetcar@163.net")  
  end   if  
  end   sub  
   
   
  call   OnContextMenu()  
   
  </script>  
   
        不知不觉写了这么多,望了去吃饭   ;)Top

相关问题

  • 在IE中如何增加右键菜单,像NETANTS那样?
  • IE右键菜单
  • IE右键提问
  • 如何将自己的程序加入Ie的右键菜单,就像Netants一样
  • C# winform treeview 右键选中节点
  • 如何在IE右键增加按钮?
  • 再ie里,修改右键菜单
  • 谢谢大家,我的引用是在vbscript里,模仿netants的右键菜单的方法,我照着文章做的,在c盘下生成注册成功,可用vbscript无法建立该引用?
  • 在IE右键菜单中添加菜单项的问题
  • 怎么在ie的右键菜单中添加二级菜单?

关键词

  • .net
  • c#
  • 组件
  • 脚本
  • 键入
  • 文件
  • ie
  • dll
  • 调用
  • showme

得分解答快速导航

  • 帖主:erich2000

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo