求ahk鼠标移动屏幕边缘触发弹窗脚本

具体来说,鼠标移动到上面右边缘1/2处自动打开浏览器插件弹窗A,移动到右边上边缘1/2处打开弹窗B,移动到右上角打开弹窗C,弹窗可以快捷键控制,并且打开后一个同时关闭前一个,鼠标离开屏幕右上角时关闭最后弹窗。如果有其他工具也行,谢谢了

这个问题有点玄妙。你要是会ahk,简单用定时器获取坐标进行判断就行。要是不会,别人提供个大概功能的脚本也不能准确满足需求。

可能鼠标手势软件更适合你的需求.

比如 s+.net 或者其他支持四角手势的鼠标软件.

1 Like

如果按快捷键唤出浏览器插件弹窗, 启动第二个时, 第一个不会自动消失吗?
下面代码让光标触碰边缘执行快捷键, 但如果光标一直停留在触发位置会不断执行快捷键

CoordMode, Mouse, screen
SetTimer, OnMouseMove, 200
;A := false
;B := false
;C := false

RightHalf := A_ScreenWidth / 2
TopHalf := A_ScreenHeight / 2

#Persistent
OnMouseMove:
    MouseGetPos, MouseX, MouseY


    if (MouseX > RightHalf && MouseX < A_ScreenWidth -10 && MouseY = 0) {    ; 上右 A
        Send, ^+1


    } else if (MouseX > A_ScreenWidth -2 && MouseY > 10 && MouseY < TopHalf) {    ; 右上 B
        Send, ^+3

    } else if (MouseX > A_ScreenWidth -10 && MouseY < 10) {      ; 右上角 C
       Send, ^+4

会一点,相关的还没学到

手势可以四角,但是希望弹窗处理集中一角,并且打开和关闭都要点击,想寻找更简洁办法

请问代码里ABC应该是快捷键是吧,修改还是提示错误呀
Error: Missing “3”
Line#
019: Else
019: if (MouseX>Alt+L_ScreenWidth-2 && MouseY>10 && MouseY
< TopHalf)
019: {
020: Send,^+3
022:}
022: Else
022: if (MouseX > Alt+G_ScreenWidth-10 && MouseY <10)
022: {
023: Send,^+4
024: Exit
025: Exit
025: Exit
The program will exit.

没看明白, 完整的脚本发出来看看

CoordMode, Mouse, screen
SetTimer, OnMouseMove, 200
;Alt+H := false
;Alt+G := false
;Alt+L:= false

RightHalf := Alt+H_ScreenWidth / 2
TopHalf := Alt+H_ScreenHeight / 2

#Persistent
OnMouseMove:
MouseGetPos, MouseX, MouseY

if (MouseX > RightHalf && MouseX < Alt+H_ScreenWidth -10 && MouseY = 0) {    ; 上右 A
    Send, ^+1


} else if (MouseX > Alt+L_ScreenWidth -2 && MouseY > 10 && MouseY < TopHalf) {    ; 右上 B
    Send, ^+3

} else if (MouseX > Alt+G_ScreenWidth -10 && MouseY < 10) {      ; 右上角 C
   Send, ^+4

A_ScreenWidth 和A_ScreenHeight是内置变量, 不能改

#SingleInstance
CoordMode, Mouse, screen
SetTimer, OnMouseMove, 200

RightHalf := A_ScreenWidth / 2
TopHalf := A_ScreenHeight / 2

#Persistent
OnMouseMove:
MouseGetPos, MouseX, MouseY


if (MouseX > RightHalf && MouseX < A_ScreenWidth -10 && MouseY = 0) {    ; 上右 A
    Send, !h  ; 发送Alt + H


} else if (MouseX > A_ScreenWidth -2 && MouseY > 10 && MouseY < TopHalf) {    ; 右上 B
    Send, !l  ; 发送Alt + L

} else if (MouseX > A_ScreenWidth -10 && MouseY < 10) {      ; 右上角 C
   Send, !g  ; 发送Alt + G
}

还是出现上面Error: Missing的错误,运行不了

截个屏看看

少了个花括号吧 ? 最后一行

加了以后能运行,但没反应

鼠标接触边缘不能自动弹窗

浏览器有没有打开 ? 如果把 send !h 换成msgbox test 有没有反应 ? send !h 换成send #d 会不会回到桌面 ?

可以弹窗,但鼠标离开屏幕右上角无法自动关闭

屏幕分四块的右上角吧,毕竟弹窗有时还要点击处理

应该说右上区域

没能明白, “屏幕分四块的右上角/区域” 怎么理解? 在上面触发区域增加一个触发范围, 比如上右的中间再切分一次? 你用的是什么浏览器插件? 具体操作流程是什么?