我的脚本备份: https://pan.baidu.com/s/1ceTunj-CzTeAayasLNr2YQ 密码: 30e0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
;======本文是萌新的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
;)