AutoHotkey实现谷歌浏览器双击关闭页面

由于之前一直使用的qq浏览器,因为他有很多功能我比较喜欢,例如双击关闭页面、鼠标拖动选取内容会进行搜索等等。

不过学习前端技术需要应用谷歌浏览器进行开发,不过新版本的谷歌浏览器并不能实现鼠标双击关闭页面等功能,让我感到非常不习惯。后来,发现一种方法实现这个功能,在此分享给大伙儿。



AutoHotkey

AHK 脚本文件,原脚本来自知乎,现做了一些修改

#NoEnv
#SingleInstance force

IniRead, doubleclick, settings.ini, option, doubleclick,Check
IniRead, scrolltab, settings.ini, option, scrolltab,Check
IniRead, rightclick, settings.ini, option, rightclick,Check

EmptyMem()
menu, tray, NoStandard
menu, tray, add, 启用双击关闭标签页
menu, tray, add, 启用滚轮切换标签页
menu, tray, add, 启用右键关闭标签页
menu, tray, %doubleclick%, 启用双击关闭标签页
menu, tray, %scrolltab%, 启用滚轮切换标签页
menu, tray, %rightclick%, 启用右键关闭标签页
menu, tray, add ;分割线
menu, tray, add, 退出
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
退出:
ExitApp
return
启用双击关闭标签页:
if doubleclick<>Check
{
menu, tray, Check, 启用双击关闭标签页
doubleclick=Check
}
Else
{
menu, tray, unCheck, 启用双击关闭标签页
doubleclick=unCheck
}
IniWrite, %doubleclick%, settings.ini, option, doubleclick
EmptyMem()
return

启用滚轮切换标签页:
if scrolltab<>Check
{
menu, tray, Check, 启用滚轮切换标签页
scrolltab=Check
}
Else
{
menu, tray, unCheck, 启用滚轮切换标签页
scrolltab=unCheck
}
IniWrite, %scrolltab%, settings.ini, option, scrolltab
EmptyMem()
return

启用右键关闭标签页:
if rightclick<>Check
{
menu, tray, Check, 启用右键关闭标签页
rightclick=Check
}
Else
{
menu, tray, unCheck, 启用右键关闭标签页
rightclick=unCheck
}
IniWrite, %rightclick%, settings.ini, option, rightclick
EmptyMem()
return

#IfWinActive ahk_class Chrome_WidgetWin_1
 ~$WheelDown::
 ~$WheelUp::
   if scrolltab=Check
  {
    MouseGetPos,, ypos
    If (ypos>40) Or (ypos<0)
    Return
    IfEqual,A_ThisHotkey,~$WheelDown, Send ^{PgDn}
    Else Send ^{PgUp}
EmptyMem()
  }
 Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ~LButton::
  if doubleclick=Check
  {
    WinGetPos,,, w, h, A
    MouseGetPos,xpos, ypos
    WinGet,Mom,MinMax
    If ((ypos>45)And(Mom<1))Or((ypos>28)And(Mom>0)) Or (ypos<0)
    Return
    If (A_PriorHotkey="~LButton") and (A_TimeSincePriorHotkey<200)
    ; 此处和原版本不同 ↓
    send ^w
    ; 此处和原版本不同 ↑
EmptyMem()
      }
 Return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ~RButton Up::
  ~RButton::
     if rightclick=Check
  {
    MouseGetPos,xpos, ypos
    WinGet,Mom,MinMax
    If ((ypos>45)And(Mom<1))Or((ypos>28)And(Mom>0)) Or (ypos<0)
    Return
    if  GetKeyState("1")
        Return
    IfEqual,A_ThisHotkey,~RButton, Send {Click Middle}
                                 Else Send {Click middle}
EmptyMem()
                                  }
 Return
#IfWinActive

EmptyMem(PID="AHK Rocks"){
    pid:=(pid="AHK Rocks") ? DllCall("GetCurrentProcessId") : pid
    h:=DllCall("OpenProcess", "UInt", 0x001F0FFF, "Int", 0, "Int", pid)
    DllCall("SetProcessWorkingSetSize", "UInt", h, "Int", -1, "Int", -1)
    DllCall("CloseHandle", "Int", h)
}

若需托盘不显示图标,则在第一行前新建一行插入 #NoTrayIcon 即可。



存在的问题

已知双击 Chrome 标题栏空处切换最大化/窗口化时也有概率触发脚本导致标签页关闭,目前解决方法是降低此时双击的频率。



下载地址

具体使用步骤我就不写了,因为就是建立文档把代码复制进去就行了

下面是写好的文件,需要的小伙伴们直接下载就好了,想多了解AHK的上面点击可以跳转到官网

链接:https://pan.baidu.com/s/11strukCzAfedJYFMa6zHxg
提取码:9069

猜你喜欢

转载自blog.csdn.net/Robergean/article/details/119748197