AHK 脚本

;======本文是萌新的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 
;)

你可能感兴趣的:(Win10)