其他分享
首页 > 其他分享> > ahk精简自用

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