关于工具:效率工具AutoHotKey

33次阅读

共计 8340 个字符,预计需要花费 21 分钟才能阅读完成。

弱小。简略易学。

Windows 的终极自动化脚本语言。

下载安装

AutoHotkey —— 官网

AutoHotkey 中文指南

创立我的项目

  1. 右键点桌面空白处.
  2. 点击 “ 新建 ” 菜单.
  3. 点击外面的 “AutoHotkey Script” 新建一个脚本.
  4. 给脚本命名. 备注: 文件名必须带 .ahk 后缀, 例如 MyScript.ahk
  5. 找到刚刚新建的脚本并右键点击它.
  6. 点击 “Edit Script”.
  7. 一个新窗口被弹出, 兴许是记事本. 如果是这样就胜利了!
  8. 新建一个文本文件,批改文件后缀名为 .ahk 格局也行

快捷键定义

;# 代表 win,

+ 代表 shift,^ 代表 Ctrl,

!代表 Alt ;

如果要正文,能够用分号 也能够用 //

1. 热键标记

!:是热键标记,这里的感叹号代表键盘上的 alt 键。
!n:即对应键盘热键 alt + n。

罕用热键标记对应关系:

  • #:win 键
  • !:alt
  • ^:ctrl
  • +:shift
  • &:用于连贯两个按键(含鼠标按键) 合并成一个自定义热键.

2. 连贯

符号 :: 意味着每次按下后面的热键时,随后的命令将会被执行。这里用来连贯热键标记和 Run 命令。

3. Run 命令

Run 命令:用来启动一个程序、文档、URL 网址或者快捷方式。如:

Run Notepad
Run C:\My Documents\Address List.doc
Run www.yahoo.com
Run mailto:someone@somedomain.com

把下面 3 局部组合起来即可实现自定义快捷键。

Ctrl ^ ^
Shift + +
Alt ! !
Windows 键 # #
#、^、+、! 等 个别不必 {#}、{^}、{+}、{!}等
左 Ctrl、左 Shift、左 Alt <^ <+ <!
右 Ctrl、右 Shift、右 Alt >^ >+ >!
Enter {enter}
Tab {Tab}
F1、F12 等 F1、F12 等 {F1}、{F12}等
Esc {Esc}或{Escape}
空格 {Space}
Backspace {Backspace}或{BS}
Delete {Delete} or {Del}
Insert {Insert} or {Ins}
↑、↓、←、→ {Up}、{Down}、{Left}、{Right}
Home 键 {Home}
End 键 {End}
PageUp 键 {PgUp}
PageDown 键 {PgDn}
CapsLock 键 {CapsLock}

罕用操作

替换字符

   咱们来一个简略的例子:输出 chinar 主动替换为 `http://www.chinar.xin`

在关上的记事本中输出:

第一种写法:

::oyk::http://oykperson.xyz/

第二种写法:

::oyk::
Send http://oykperson.xyz/
return
::bky::
Send https://www.cnblogs.com/
return

AHK 语法中:Send 是发送命令,return 是完结

保留后,右键文件 →→ Run Script 运行脚本

而后,当咱们输出文本chinar 按下 空格键 / 回车键 / tab 键时,会主动帮咱们替换为http://www.chinar.xin

极速关上网页

Win+0

#0::Run https://tinypng.com/

自定义快捷键 - 关上文件或网址

Alt+n 或 + c 启动程序

!n::run notepad
!c::run, D:\SoftwareKit\_jade_new_soft\cmd_markdown_win64\Cmd Markdown.exe

一键拷贝文件门路

只须要 Ctrl+shift+c 即可拷贝文件门路

^+c::
; null= 
send ^c
sleep,200
clipboard=%clipboard% ;%null%
tooltip,%clipboard%
sleep,500
tooltip,
return

缩写疾速打出常用语

键入 /jeff 后,再加 空格 、或 tab、或 回车

::/mail::gmail@gmail.com
::/jeff::http://www.jeffjade.com/
::/con::console.log();
::/js::javascript:;
::/fk:: 轩学生这会子必定在忙,请骚后。thx。祝君:天天开心,日日欣悦。

激活 / 关上 / 暗藏程序

快捷键:Win+C

#c::
IfWinNotExist ahk_class Chrome_WidgetWin_1
{Run "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
    WinActivate
}
Else IfWinNotActive ahk_class Chrome_WidgetWin_1
{WinActivate}
Else
{WinMinimize}
Return

音量得心应手

; 最钟爱代码之音量得心应手
;=========================================================
~lbutton & enter:: ; 鼠标放在任务栏,滚动滚轮实现音量的加减
exitapp  
~WheelUp::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Up}  
Return  
~WheelDown::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Down}  
Return  
~MButton::  
if (existclass("ahk_class Shell_TrayWnd")=1)  
Send,{Volume_Mute}  
Return  

Existclass(class)  
{  
MouseGetPos,,,win  
WinGet,winid,id,%class%  
if win = %winid%  
Return,1  
Else  
Return,0  
}
;=========================================================

窗口操作

;=========================================================================
#enter:: ; 最大化窗口
WinGet,S,MinMax,A
if S=0
    WinMaximize,A
else if S=1
    WinRestore,A
else if S=-1
    WinRestore,A
return

!enter:: ; 最爱代码之窗口置顶
    WinGet ow, id, A
    WinTopToggle(ow)
    return
WinTopToggle(w) {
 
    WinGetTitle, oTitle, ahk_id %w%
    Winset, AlwaysOnTop, Toggle, ahk_id %w%
    WinGet, ExStyle, ExStyle, ahk_id %w%
    if (ExStyle & 0x8)  ; 0x8 为 WS_EX_TOPMOST. 在 WinGet 的帮忙中
        oTop = 置顶
    else
        oTop = 勾销置顶
    tooltip %oTitle% %oTop%
    SetTimer, RemoveToolTip, 5000
    return
 
    RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
    return
}

!x:: ; 敞开窗口
send ^w
return

#c:: ;cosea 版以管理员身份关上 cmd 命令行
Run *RunAs cmd ,,max
return

#m:: ; 窗口最小化
WinMinimize, A
return

^delete::FileRecycleEmpty ;ctrl+del,清空回收站

F7::
Shutdown, 1 ; 关机
;Shutdown, 2 ; 重启
return

; 代码之革除所有标点符号 ================================
F2:: ; 革除所有标点符号,并换行
run notepad,,max
Loop
{
StringReplace, clipboard, clipboard, `, , `r`n, UseErrorLevel ; 革除英文逗号
StringReplace, clipboard, clipboard,,, `r`n, UseErrorLevel ; 革除中文逗号
StringReplace, clipboard, clipboard, `; , `r`n, UseErrorLevel ; 革除英文分号
StringReplace, clipboard, clipboard,;, `r`n, UseErrorLevel ; 革除英文分号
StringReplace, clipboard, clipboard, . , `r`n, UseErrorLevel ; 革除英文句号
StringReplace, clipboard, clipboard,。, `r`n, UseErrorLevel ; 革除中文句号
StringReplace, clipboard, clipboard, : , `r`n, UseErrorLevel ; 革除英文冒号
StringReplace, clipboard, clipboard,:, `r`n, UseErrorLevel ; 革除中文冒号
StringReplace, clipboard, clipboard,‘’, `r`n, UseErrorLevel ; 革除中文双引号 1
StringReplace, clipboard, clipboard,“, `r`n, UseErrorLevel ; 革除中文双引号 2
StringReplace, clipboard, clipboard,”, `r`n, UseErrorLevel ; 革除中文双引号 3
StringReplace, clipboard, clipboard, ' , `r`n, UseErrorLevel ; 革除英文双引号
StringReplace, clipboard, clipboard,、, `r`n, UseErrorLevel ; 革除中文顿号
StringReplace, clipboard, clipboard, / , `r`n, UseErrorLevel ; 革除右斜杠
StringReplace, clipboard, clipboard, \ , `r`n, UseErrorLevel ; 革除左斜杠
StringReplace, clipboard, clipboard, - , `r`n, UseErrorLevel ; 革除短横线
StringReplace, clipboard, clipboard, —— , `r`n, UseErrorLevel ; 革除长横线
StringReplace, clipboard, clipboard, = , `r`n, UseErrorLevel ; 革除等号
StringReplace, clipboard, clipboard, + , `r`n, UseErrorLevel ; 革除加号
StringReplace, clipboard, clipboard,(, `r`n, UseErrorLevel ; 革除中文左括号
StringReplace, clipboard, clipboard,), `r`n, UseErrorLevel ; 革除中文右括号
StringReplace, clipboard, clipboard, ( , `r`n, UseErrorLevel ; 革除英文左括号
StringReplace, clipboard, clipboard, ) , `r`n, UseErrorLevel ; 革除英文右括号
StringReplace, clipboard, clipboard,【, `r`n, UseErrorLevel ; 革除中文【StringReplace, clipboard, clipboard,】, `r`n, UseErrorLevel ; 革除中文】StringReplace, clipboard, clipboard, [ , `r`n, UseErrorLevel ; 革除[StringReplace, clipboard, clipboard,] , `r`n, UseErrorLevel ; 革除]
StringReplace, clipboard, clipboard, ! , `r`n, UseErrorLevel ; 革除英文感叹号
StringReplace, clipboard, clipboard,!, `r`n, UseErrorLevel ; 革除中文感叹号
StringReplace, clipboard, clipboard,?, `r`n, UseErrorLevel ; 革除中文问号
StringReplace, clipboard, clipboard, ? , `r`n, UseErrorLevel ; 革除英文问号
StringReplace, clipboard, clipboard, < , `r`n, UseErrorLevel ; 革除英文 <
StringReplace, clipboard, clipboard, > , `r`n, UseErrorLevel ; 革除英文 >
StringReplace, clipboard, clipboard,《, `r`n, UseErrorLevel ; 革除中文《StringReplace, clipboard, clipboard,》, `r`n, UseErrorLevel ; 革除英文》StringReplace, clipboard, clipboard, @ , `r`n, UseErrorLevel ; 革除 @
StringReplace, clipboard, clipboard, # , `r`n, UseErrorLevel ; 革除#
StringReplace, clipboard, clipboard, $ , `r`n, UseErrorLevel ; 革除 $
StringReplace, clipboard, clipboard, `% , `r`n, UseErrorLevel ; 革除 %
StringReplace, clipboard, clipboard, ^ , `r`n, UseErrorLevel ; 革除 ^
StringReplace, clipboard, clipboard, & , `r`n, UseErrorLevel ; 革除 &
StringReplace, clipboard, clipboard, * , `r`n, UseErrorLevel ; 革除 *
StringReplace, clipboard, clipboard, `` , `r`n, UseErrorLevel ; 革除 `
StringReplace, clipboard, clipboard, `:: , `r`n, UseErrorLevel ; 革除::
StringReplace, clipboard, clipboard, ", `r`n, UseErrorLevel ; 革除"
StringReplace, clipboard, clipboard, { , `r`n, UseErrorLevel ; 革除{StringReplace, clipboard, clipboard,}, `r`n, UseErrorLevel ; 革除}
StringReplace, clipboard, clipboard, |, `r`n, UseErrorLevel ; 革除 |
StringReplace, clipboard, clipboard, ·, `r`n, UseErrorLevel ; 革除中文···
StringReplace, clipboard, clipboard, ~, `r`n, UseErrorLevel ; 革除~
StringReplace, clipboard, clipboard, _ , `r`n, UseErrorLevel ; 革除_
    if ErrorLevel = 0  ; 不须要再进行替换.
        break
}
sleep,200
send,^v
return

F8:: ; 革除 Windows 中文件名不能蕴含下列任何字符:\ / : * ? " < > | 
Loop
{
StringReplace, clipboard, clipboard, ? , , UseErrorLevel ; 革除英文问号
StringReplace, clipboard, clipboard, * , , UseErrorLevel ; 革除 *
StringReplace, clipboard, clipboard, : , , UseErrorLevel ; 革除英文冒号
StringReplace, clipboard, clipboard, ", , UseErrorLevel ; 革除"
StringReplace, clipboard, clipboard, < , , UseErrorLevel ; 革除英文 <
StringReplace, clipboard, clipboard, > , , UseErrorLevel ; 革除英文 >
StringReplace, clipboard, clipboard, / , , UseErrorLevel ; 革除右斜杠
StringReplace, clipboard, clipboard, \ , , UseErrorLevel ; 革除左斜杠
StringReplace, clipboard, clipboard, |, , UseErrorLevel ; 革除 |
    if ErrorLevel = 0  ; 不须要再进行替换.
        break
}
return

; 神级代码之锁定中英文 =============================================
; 性能:输入法状态提醒 ;f3 强制中文 f4 强制英文小写
; 环境:win10+ 搜狗输入法,输入法状态切换用默认的 shift 键。; 作者:kazhafeizhale 知乎 @oahgnat11
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance force

XButton1::^c
XButton2::^v

F3::
    SetCapsLockState,off
    switchime(0)
    switchime()
return

F4::
    SetCapsLockState,off
    switchime(0)
return

switchime(ime := "A")
{if (ime = 1){DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,"00000804", UInt, 1))
    }else if (ime = 0)
    {DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,, UInt, 1))
    }else if (ime = "A")
    {;ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)
        Send, #{Space}
    }
}

失去以后选中文件的门路

;=========================================================
#+c:: ; 用快捷键失去以后选中文件的门路
send ^c
sleep,200
clipboard=%clipboard% ;windows 复制的时候,剪贴板保留的是“门路”。只是门路不是字符串,只有转换成字符串就能够粘贴进去了
tooltip,%clipboard% ; 提醒文本
sleep,500
tooltip,
return
;=========================================================

开机自启

把须要开机启动的脚本,放入“启动”文件夹即可。

目录:{C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup}

提醒:防止和零碎快捷键抵触

零碎的罕用快捷键都是应用 Ctrl+XX 和 Alt+XX 来组合的, 而 Win+XX 的很少,所以咱们应该尽量应用 Win+XX 来组合

/* 舒适提醒 */
;Windows 零碎默认的 Win 快捷键:
;Win + E:关上资源管理器;
;Win + D:显示桌面;
;Win + F:关上查找对话框;
;Win + R:关上运行对话框;
;Win + L:锁定电脑;
;Win + PauseBreak:关上零碎属性对话框;
;Win + Q: 本地文件 / 网页等搜寻;
;Win + U: 关上控制面板-轻松应用设置核心;

正文完
 0