AutoHotkey は、Google Chrome のダブルクリックを実現してページを閉じます

以前から使用しているqqブラウザなので、ダブルクリックでページを閉じたり、マウスをドラッグして検索したいコンテンツを選択したりと機能が多く気に入っています。

ただ、フロントエンド技術を学ぶには開発用のGoogle Chromeのアプリが必要なのですが、新しいバージョンのGoogle Chromeではダブルクリックでページを閉じるなどの機能が実現できず、非常に違和感を覚えます。後で、この機能を実現する方法を見つけたので、ここで共有します。



オートホットキー

AHK スクリプト ファイル。元のスクリプトは Zhihu から提供され、いくつかの変更が加えられています。

#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