效率工具 AutoHotKey


效率利器 AutoHotKey

自動熱鍵

強大。簡單易學。

Windows的終極自動化腳本語言。

Download —— 下載

AutoHotkey —— 官網

進入官網,沒什么可說的,直接點擊 Download 下載安裝

安裝成功后,是沒有任何提示的,直接關閉安裝程序即可!

Create a program —— 創建項目

桌面右鍵→→新建→→ AutoHotkey Script 即可創建一個腳本

新建一個文本文件,修改文件后綴名為 .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}

Substitute character —— 替換字符

AutoHotkey —— 中文腳本手冊
我們來一個簡單的例子:輸入 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

極速打開網頁

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

Win+0

自定義快捷鍵-打開文件或網址

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

Alt+n 或+c啟動程序

一鍵拷貝文件路徑

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

只需要Ctrl+shift+c即可拷貝文件路徑

縮寫快速打出常用語

::/mail::gmail@gmail.com
::/jeff::http://www.jeffjade.com/
::/con::console.log();
::/js::javascript:;
::/fk::軒先生這會子肯定在忙,請騷后。thx。祝君:天天開心,日日欣悅。

鍵入/jeff 后,再加空格、或 tab、或回車

激活/打開/隱藏程序

#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

快捷鍵:Win+C

音量隨心所欲

;最鍾愛代碼之音量隨心所欲
;=========================================================
~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: 打開控制面板-輕松使用設置中心;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM