ahk精简自用
作者:互联网
;9:03 2022/8/20 自用
#NoEnv
#Warn
#SingleInstance Force
;设工作目录为桌面
SetWorkingDir %A_Desktop%
;托盘提示必须放在热键前面,巨坑
Menu, Tray, Tip , 出品`n版本:0.23`n2022/8/20
;
;由于Sublime Text的使用,以及谷歌拼音输入法的扩展功能
;所以精简了一些功能,并且调整了一些按键
Var =
(
Alt+1 窗口置顶,再按取消
Alt+Ctrl+u 打开用户、系统启动文件夹
Alt+Ctrl+S 选词搜索
Alt+Ctrl+p 获取文件全路径
Winodws+q 常看网站
Shift+F1 当前网址生成快捷方式到桌面
鼠标左 Ctrl+z 恢复
鼠标上 最大化窗口 win+up
鼠标下 显示桌面 win+d
鼠标左下 撤销关闭的浏览器标签页Ctrl+Shift+T
鼠标右下 关闭标签页Ctrl+w
鼠标右上 关闭窗口Alt+F4
鼠标左上 弹出信息框提示用法
鼠标在任务栏时滚轮可调音量
by 2022/8/20
)
;
Menu, Tray, Add ; 创建分隔线.
Menu, Tray, Add, 操作说明, MenuHandler ; 创建新菜单项.
return
;
MenuHandler:
MsgBox %Var%
return
;功能:打开用户、系统启动文件夹
;按CTRL+ALT+u 启用
;
^!u::
run,shell:Common Startup
run,shell:startup
return
;
;
;功能:活动窗口按Alt+1置顶,再按一次可以取消置顶
;
!1::
WinSet,AlwaysOnTop, , A
return
;
;
; Alt+Ctrl+S 选词搜索
; 百度链接可能需要经常修改
!^s::
Send,^c
Sleep 100
Run,https://www.baidu.com/s?ie=UTF-8&wd=%clipboard%
return
;
;
;Alt+Ctrl+p 获取全路径
;
!^p::
; null=
send ^c
sleep,200
clipboard=%clipboard% ;%null%
tooltip,%clipboard%
sleep,500
tooltip,
msgbox,%clipboard%
return
;
;
;Winodws+q,打开 常用网址
;
#q::
run,http://www.baidu.com
return
;
;
;将当前网址生成快捷方式到桌面
;Shift+F1触发
+F1::
;复制链接
Send,^c
;延时0.1秒
Sleep 100
;获得当前活动窗口的标题放入变量%Title%"
WinGetTitle, Title, A
;=======原来的代码供参考=========
;MsgBox, The active window is "%Title%".
;IniWrite, %clipboard%, %A_Desktop%\Web请重命名.url, InternetShortcut, URL
;=======原来的代码结束段=========
; 移除%Title%变量中不能作为文件名的字符:
;主要包括 \ / : * ? " < > |
Loop
{
StringReplace, Title, Title, \, , UseErrorLevel
StringReplace, Title, Title, /, , UseErrorLevel
StringReplace, Title, Title, :, , UseErrorLevel
StringReplace, Title, Title, *, , UseErrorLevel
StringReplace, Title, Title, ?, , UseErrorLevel
StringReplace, Title, Title, "", , UseErrorLevel
StringReplace, Title, Title, <, , UseErrorLevel
StringReplace, Title, Title, >, , UseErrorLevel
StringReplace, Title, Title, |, , UseErrorLevel
if (ErrorLevel = 0) ; 不需要再进行替换.
break
}
;写快捷方式到桌面
IniWrite, %clipboard%, %A_Desktop%\%Title%.url, InternetShortcut, URL
msgbox, 快捷方式已生成
return
;
;全局鼠标手势
;转载自 https://blog.csdn.net/formyself/article/details/43487409
;实现原理:识别右键按下时的鼠标位置,以及抬起鼠标右键时的位置。
;当X(水平)、Y(垂直)方向大于一定像素阈值(这里设定为30)时,判断在此方向上有移动。
;当X、Y方向都小于此阈值时,判断没有移动,发出默认的『鼠标右键』。
;
rbutton::
minGap = 30 ; 设定的识别阈值,大于此阈值,说明在某方向上有移动
mousegetpos xpos1,ypos1
Keywait, RButton, U
mousegetpos xpos2, ypos2
if (abs(xpos1-xpos2) < minGap and abs(ypos1-ypos2)<minGap) ; nothing 没有运动,直接输出rbutton
send, {rbutton}
else if (xpos1-xpos2 > minGap and abs(ypos1-ypos2)<minGap) ; 左 Ctrl+z 恢复
send, ^z
else if (xpos2-xpos1 > minGap and abs(ypos1-ypos2)<minGap) ; 右 无
send, {rbutton} ; 如果是"send, {F5}"表示发送F5刷新
else if (abs(xpos1-xpos2)< minGap and (ypos1-ypos2)>minGap) ; 上 最大化窗口, win+up
send, #{up}
else if (abs(xpos1-xpos2)< minGap and (ypos2-ypos1)>minGap) ; 下 显示桌面, win+d
send, #d
else if (ypos2-ypos1 > minGap and (xpos1-xpos2) > minGap) ; 左下 Ctrl+Shift+T 撤销关闭的标签页
send, ^+t
else if (ypos2-ypos1 > minGap and (xpos2-xpos1) > minGap) ; 右下 Ctrl+w 关闭标签页
send, ^w
else if (ypos1-ypos2 > minGap and (xpos2-xpos1) > minGap) ; 右上 Alt+F4 关闭窗口
send, !{F4}
else if (ypos1-ypos2 > minGap and (xpos1-xpos2) > minGap) ; 左上 弹出帮助说明信息框
;send, {rbutton} ;左上 nothing
MsgBox %Var%
else
send, {rbutton}
return
;
;任务栏调节音量
#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}
WheelDown::Send {Volume_Down}
MouseIsOver(WinTitle) {
MouseGetPos,,, Win
return WinExist(WinTitle . " ahk_id " . Win)
}
标签:return,鼠标,Title,ahk,Ctrl,ypos1,自用,minGap,精简 来源: https://www.cnblogs.com/namevt/p/16617095.html