实现双击IE9的Tab键关闭当前页面的功能

今天研究了一下如何实现双击IE9的Tab键关闭当前页面的功能,实现这个功能的基本原理如下:

  1. 建立全局鼠标钩子,获取双击Tab时候的消息,触发Tab被双击的事件。
  2. 发送Ctrl+W键盘消息,触发快捷键功能关闭当前Tab页。

这里有几个问题需要解决:

  1. 如何获取鼠标双击事件:
    通过spy++检测后发现,发现Tab栏是一个类型为DirectUIHWND的类,它是一个TabControl,本身并不支持鼠标双击消息,因此,需要自己根据MouseUP消息判断是否为双击消息(通过两次MouseUp的时间间隔来判断)。
  2. 如何判断是否双击的Tab栏:
    由于创建的是全局钩子,所有的鼠标消息都会被截取到,因此这里要进行过滤。具体的条件为:鼠标触发点的控件类为DirectUIHWND,并且其进程为IE。
  3. 如何关闭当前Tab页:
    这个比较简单,直接调用keybd_event发送Ctrl+W即可。

实现这个功能并不困难,但我想把它集成到BHO中时,却遇到了一个问题——当IE开启了保护模式时,是无法收到全局鼠标钩子的消息的。

解决这个问题的方法有两种:

  1. 关闭保护模式
  2. 新写一个Hook程序实现鼠标消息的截取,然后在BHO中启动该进程。

方法1的方法降低了浏览器的安全性,自然不可取。方法2虽然可以解决这个问题,但是却多了一个附加进程,虽然可以把它隐藏起来,用户感知不到,但始终不大爽。权衡再三,最终还是选择了方法2。(我对windows编程不熟,如果有更好的方法请告知)

这里是我的一个实现,感兴趣的朋友可以自己下载试一下: 点击下载   使用环境是win7+ie9+.net4.0,其它环境无法执行。

由于没有和BHO集成,需要手动启动,启动后它自动隐藏在后台(通过进程管理器可以看,就不要不停的点了),然后就有了双击IE9的Tab键关闭当前页面的功能了。当IE9关闭后,改程序自动关闭。该程序没有混淆,需要代码就自己反编译好了,就不要留言了。


 

转载于:https://www.cnblogs.com/TianFang/archive/2011/04/05/2005927.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在WEBPAGE(不是选项卡)上左/右或三双击关闭选项卡。通过shiftKey + DC / TC重新打开选项卡。可选:一个图标... 非常重要的提示:安装后,双击“网页”(不要单击!)以关闭选项卡(或者为了更安全:将选项更改为使用鼠标右单击页面或使用鼠标左三次单击页面)-实际上,这比单击速度要快。标签。详细信息请参见下文。对于那些想要“双击选项卡以关闭”的人-Google现在进行了自己的扩展以执行此操作以及更多操作。它使用一种插件机制,该机制使用编译后的二进制代码,并且存在安全风险,除非您确定可以信任作者(当然可能来自Google)。如果不使用这种机制,Chrome扩展程序将无法接收标签事件 Google的扩展程序称为Chrome工具箱。至于那个问我为什么ChromePlus可以做到的人-答案很简单,ChromePlus不是Chrome。它也有额外的二进制代码,不是Google提供的。对于那些想要“双击鼠标右”的用户-Chrome现在解决了阻止此功能的愚蠢问题,我将其放在DCCT v1.0.8中。请下载并享受!此扩展提供了以下功能:1.双击网页内的任意位置以双击鼠标左双击鼠标右关闭选项卡(比单击鼠标中更快,并在按住左手或手机时敲击ctrl-w)。重要提示:如果您双击鼠标左选择一个单词,DCCT将不会关闭选项卡-不会干扰Google词典等。双击鼠标右始终会关闭选项卡 2.单击该图标将关闭当前选项卡。单击此选项可在单击图标时更改为复制当前选项卡,或完全隐藏图标 3.没有意外关闭Chrome-提供了禁用关闭最后一个Chrome窗口的最后一个选项卡的选项(注意:单击最后一个窗口右上角的“ x”以关闭Chrome) 4.按用户请求的功能(可选):单击或单击ctrl +单击链接时会恢复浏览器的行为-单击链接将改为在新的背景选项卡中打开链接,而ctrl + click会在当前选项卡中打开链接。其他:1.如果双击不适合您,请使用“选项”页面切换到“三次单击”。注意:与双击不同,即使您双击一个单词,三次单击也会关闭选项卡 2.如果您不小心关闭了选项卡,请使用Shift+双击(如果选择,请单击三次)以重新打开选项卡 3.如果Chrome禁用了所有与鼠标/盘互动的扩展程序,则该图标显示红色复选标记。否则,将显示一个绿色的选中标记 4.鼠标悬停图标将为您提供一些提示/信息。已知问题:1.恢复click / ctrl-click时,使用javascript(本身或它们的父母)的链接存在问题-例如yahoo邮件。这是一个非常棘手的问题,我还没有找到解决它的方法。也许是黑名单? 2.如果“不关闭最后一个标签”功能对您来说似乎不稳定,请首先尝试-转到Chrome“选项”->“基本”,然后将“首页”从“新标签”更改为“ http:/ /google.com”。然后单击“确定”,然后尝试再次关闭最后一个选项卡。希望它应该 支持语言:English

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值