ฉันกำลังทำงานกับโซลูชันโดยใช้ AutoHotkey ที่รู้ว่ามีการคลิกวางไว้ในแถบบุ๊กมาร์ก (ตามตำแหน่งในหน้าต่าง Chrome) และถ้าเป็นเช่นนั้นการส่ง Ctrl-click แทนที่จะเป็นการคลิกทั่วไป หากคุณใช้ AHK คุณสามารถทดสอบได้
ฉันทำสิ่งนี้โดยขัดขวางการคลิกโดยพิจารณาว่าการคลิกนั้นอยู่ใน Chrome หรือไม่จากนั้นพิจารณาว่าการคลิกนั้นอยู่ในกล่องที่ฉันกำหนดไว้เป็นแถบบุ๊คมาร์คหรือไม่ หากตรงตามเงื่อนไขเหล่านี้ทั้งหมดให้ส่งการคลิกเป็น Ctrl-click แทนการคลิกซึ่งจะเปิดบุ๊คมาร์คในแท็บใหม่
สิ่งนี้จะทำงานได้อย่างมีประสิทธิภาพสำหรับแถบบุ๊กมาร์ก แต่แน่นอนว่ามันจะไม่สนใจการคลิกบุ๊กมาร์กอื่น ๆ ภายใต้โฟลเดอร์ "บุ๊กมาร์กอื่น" เราจะยังคงต้องจำไว้ว่าให้คลิก Ctrl ลิงค์ใด ๆ เหล่านั้น (หรือคลิกกลางถ้าคุณคล่องแคล่วด้วยล้อเลื่อนของเมาส์) นอกจากนี้ขนาดและตำแหน่งของแถบบุ๊กมาร์กของคุณอาจแตกต่างกันไปขึ้นอยู่กับสิ่งต่าง ๆ มากมายเช่นธีมและแถบเครื่องมืออื่น ๆ ดังนั้น YMMV ตรวจสอบให้แน่ใจว่าคุณใช้ WindowSpy เพื่อรับตำแหน่งของแถบบุ๊กมาร์กของคุณเอง พิกัด X และ Y
บางทีสิ่งหนึ่งที่ฉันอาจจะปรับปรุงก็คือการตรวจสอบเมื่อมีการคลิก "บุ๊กมาร์กอื่น" จากนั้นส่งคลิกถัดไปในรูปแบบ Ctrl-click เพื่อให้คุณไปที่แผนผังเมนูจากนั้นเมื่อคุณค้นหาและคลิกลิงก์ของคุณ -คลิก.
#SingleInstance force
#Persistent
LButton::
{
If MouseIsOver("ahk_class Chrome_WidgetWin_1")
{
MouseGetPos, LocationX, LocationY
If LocationX between 6 and 965
{
If LocationY between 75 and 95
{
; If we are here, the mouse has been clicked in Chrome in the
; bookmarks bar. Send a Ctrl-click instead of a click.
Send, {Control down}
Click
Send, {Control up}
}
Else
Click
}
Else
Click
}
Else
Click
}
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
return WinExist(WinTitle . " ahk_id " . Win)
}