;======本文是萌新的AHK常用脚本。原理不是很懂。AHK也没用多久。若有不恰当之处,望不吝赐教。========
;============================基本按键介绍==================================
; ! → [Alt] ; ! 想象成 Alt 的 l
; # → [win] ; # 想 windows开始图案
; ^ → [Ctrl] ; ^ 想象成 Ctrl 的 倒C
; + → [Shift] ; + 想象成 Shift 的 f拉长
; p.s. 开机启动 ahk脚本 → 把对应脚本的【快捷方式】放到:
; C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\ 【即可】
;===============================特殊功能区1: 复制替换区==========================================
;当前目录 打开CMD
;解决: 打开PowerShell就好了(资源管理器 → [Shift] + 鼠标右键),cmd 能做的 PowerShell 都能做
;把选中文本的 tab键 换为 4个空格键 ([Ctrl] + V 黏贴覆盖就好,会有稍微变形 原因如下 ↓ )
;缺陷1: 原理是替换空格。而tab键能够4个空格内,自动适应,所以tab实际可能等于1~4个空格,替换会导致轻微变形
^!/::
Send ^c
Send ^c
clipboard := StrReplace(clipboard, A_Tab, A_Space A_Space A_Space A_Space)
tooltip,%clipboard%
sleep,800
tooltip,
return
;复制选择文字并转换 " \ " 为 "/"
^!\:: ;操作: 先选中文本,再按 [Alt] + \ , 再黏贴(按下 [Ctrl] +V),完毕
Send ^c
Send ^c
StringReplace, clip, clipboard, \, /, All
StringReplace, clip, clipboard, \, /, All
tooltip,%clip% ;在鼠标右侧显示clipboard内容
sleep,800
tooltip,
return
;复制选择文字并转换 "空格" 为 "下划线"
^!-::
Send ^c
Send ^c
clip := RegExReplace(clipboard, "\s","_")
clip := RegExReplace(clipboard, "\s","_")
tooltip,%clip% ;在鼠标右侧显示clipboard内容
sleep,800
tooltip,
return
;===============================特殊功能区2: 搜索区============================================
;用Google搜索选中的文字;
;解决: Send ^c 有时候没用 (编程语句用两次,防止 偶然/未知原因 导致的失败)
;使用正则替换(RegExReplace)实现了,空格替换为 "+"号, 使搜索功能有更好的使用体验
!g::
Send ^c
Send ^c
clipboard := RegExReplace(clipboard, "\s","+")
clipboard := RegExReplace(clipboard, "\s","+")
Chrome = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
Run %Chrome% http://www.google.com/search?q=%clipboard%
return
;===============================特殊功能区3: 复制/打开 文件路径区===============================
Explorer_GetSelection(hwnd="")
{
WinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")
WinGetClass class, ahk_id %hwnd%
if (process != "explorer.exe")
return
if (class ~= "Progman|WorkerW") {
ControlGet, files, List, Selected Col1, SysListView321, ahk_class %class%
Loop, Parse, files, `n, `r
ToReturn .= A_Desktop "\" A_LoopField "`n"
} else if (class ~= "(Cabinet|Explore)WClass") {
for window in ComObjCreate("Shell.Application").Windows
{
try{
if (window.hwnd==hwnd)
sel := window.Document.SelectedItems
}catch e {
continue
}
}
for item in sel
ToReturn .= item.path "`n"
}
return Trim(ToReturn,"`n")
}
;[Win] + Z ;一键拷贝文件路径 ;
#Z::
clipboard := % Explorer_GetSelection(hwnd) ;调用了 函数
Tooltip,%clipboard% ;在鼠标右侧显示【拷贝的文件路径】
Sleep,800
Tooltip,
return
;一键用notepad++[打开选中的文件]or[选中文件夹]的所有子文件
;路径中有空格就会很糟糕
;[Win] + E
#E::
path :=% Explorer_GetSelection(hwnd) ;调用了 函数
Software = C:\Program Files\Notepad++\notepad++.exe
IfInString, path, %A_Space%
{
Tooltip, path中有空格 ;在鼠标右侧显示【错误信息】
Sleep,800
Tooltip,
}
else{
Run, %Software% %path%
}
return
;C:\Users\NGP\Desktop\12 23
;numOfSpacesInPath := RegExMatch(clipboard,"\s") 【正则匹配被取代,有更好的】
;===============================特殊功能区4: 特殊热字串区===================================
;发送当前日期 【?号表示在单词中也会替换,e.g. Vnnow → V2019.....】
:?:nnow::
FormatTime, CurrentDateTime,, yyy-MM-dd HH:mm:ss
Send %CurrentDateTime%
return
;==================================特殊功能区n: 特殊区======================================
;显示 复制和剪切的内容
~^x::
~^c:: ;~ 表示次热键并不屏蔽按键原有功能
Sleep, 100 ;等待0.1s 强制机械等待剪贴板出现内容
;clip:=clipboard
StringLeft,clipboard_left,clipboard,500
Tooltip,%clipboard_left% ;在鼠标右侧显示clip(clipboard内容)
Sleep,800
Tooltip,
Return
;================================便捷输入区=================================================
;以下cmd命令可以解决部分中文乱码问题
;chcp 936
;便捷输入 常用账号名
::nnev:: XXXXXXXXXXXXXXX
;放弃【段首缩进】。使用【换行】实现 【换段】,有效减轻【文字过于密集,以至于阅读体验不好】的问题。
;===============================软件快捷启动区==============================================
;打开AutoHotkey中文教程
!y::
Run, E:\00win10装机\03装机必备软件\4AHK\AutoHotkeyHelp_CN\AutoHotkey.chm
return
;打开Eclipse
!e::
Run, D:\0Software\eclipse\eclipse.exe
return
;###############################以下内容均已注释【注释】#############################################
;##################################特殊功能区【注释】################################################
;[Ctrl] + [Shift] + C ;一键拷贝文件路径 【功能已被替换Win+Z】
;缺陷1: 无法拷贝父文件夹路径
;缺陷2: 路径中不能有空格(也不能说是缺陷吧,了解点为什么路径最好是全英文+下划线的原因)
;缺陷3: 偶尔[Ctrl] + C 不灵,不知道是不是这个热键导致的。
;缺陷4:因为用的是 ^C 也就是Ctrl+C实现的,剪切板会被当前路径覆盖
;优势1: 意外地能复制文本。
;^+c::
;Send ^c
;sleep,200
;clipboard=%clipboard% ;%null%
;tooltip,%clipboard% ;在鼠标右侧显示clipboard内容
;sleep,800
;tooltip,
;return
;按一下tab输出4个空格,把原来的 [Tab] 键屏蔽了 【功能已被替换Ctrl+Alt+/】
;Tab::
;Send {space}
;Send {space}
;Send {space}
;Send {space}
;return
;###############################软件快捷启动区【注释】###############################################
;!s:: ;Notepad++ 打开预设位置的py文件
;RuanJian # C:\Program Files\Notepad++\notepad++.exe
;WenJian # D:\pythonDemo\TestDemo.py
;Run, %RuanJian% "%WenJian%"
;return
;打开 cmder
;!c::
;Run, D:\0Software\cmder\Cmder.exe
;return
;!c:: ;打开cmd 并输入一段命令
;缺陷1:同一时间同一路径只能打开一个cmd
;缺陷2:必须在英文输入法下
;缺陷3:偶尔标点输入出错
;run cmd.exe
;WinWait, cmd.exe
;Send cd /d D:\blog\ {Enter} ;
;return
;##################################便捷输入区【注释】#################################################
;Java 便捷输入
;输入//e8后再空格 → 输入替换
;::/cpy::cd /d D:\pythonDemo\ {Enter}
;::/e8:: -encoding utf-8
;CSDN 便捷输入
;::nbsp::
;Hexo 便捷输入 (文档: 超长替换,即替换可以输出特殊符号)
;::nnot::
;(
;notepad++ * -r
;)