发送文字
F3::
send,1111
return
执行程序前先关闭程序
#SingleInstance force ;;执行程序前先关闭程序
最大化窗口
F9::
WinMaximize,A ;;最大化当前窗口
return
恢复原来窗口的大小
F10::
WinRestore, A ;;恢复原来的窗口大小
return
置顶当前窗口
CapsLock & p::
winset,AlwaysOnTop,, A ;;置顶当前程序的窗口
Return
打开任务管理器
^!NumpadIns:: ;;打开任务管理器
^!Numpad0:: IfWinExist, Windows 任务管理器
{WinHide, Windows 任务管理器
}else
{
run,taskmgr
WinActivate, Windows 任务管理器Winshow, Windows 任务管理器
}Return
打开记事本
#N::
Run Notepad ;;打开记事本
return
打开计算器
#J:: ;;打开计算器
Run, calc
return
用Alt来替换系统原有的复制、粘贴和剪切键
!c::
Send,^c ;;用Alt+C替换系统的复制键Ctrl+C
Return!x::
Send,^x ;;用Alt+X替换系统的剪切键Ctrl+X
Return!v::
Send,^v ;;用Alt+V替换系统的粘贴键Ctrl+V
Return
将字符串中的空格替换为换行符
a = 1 2 34
stringreplace, out, a, ` , `n, All
msgbox, %out%
划词一键进行百度翻译:
F9:: ;~百度一键翻译
send,^cLoop
{StringReplace, clipboard,clipboard, `r`n,%A_SPACE%, UseErrorLevelif ErrorLevel = 0 ;全部替换完,退出循环break
}
Loop
{StringReplace, clipboard,clipboard, %A_SPACE%%A_SPACE%, %A_SPACE%, UseErrorLevel;替换两个空格为一个空格if ErrorLevel = 0break
}IfWinExist, 百度翻译
{WinActivate, 百度翻译IfWinActive, 百度翻译{send,^w}}str = %clipboard%
stringreplace, out, str, ` , `%20, Allbaidu = https://fanyi.baidu.com/?#en/zh/
URL = %baidu%%out%
run,%URL%returnF10:: ;~谷歌一键翻译
send,^cLoop
{StringReplace, clipboard,clipboard, `r`n,%A_SPACE%, UseErrorLevelif ErrorLevel = 0 ;全部替换完,退出循环break
}
Loop
{StringReplace, clipboard,clipboard, %A_SPACE%%A_SPACE%, %A_SPACE%, UseErrorLevel;替换两个空格为一个空格if ErrorLevel = 0break
}IfWinExist, Google 翻译
{WinActivate, Google 翻译IfWinActive, Google 翻译{send,^w}}str = %clipboard%
stringreplace, out, str, ` , `%20, AllGoogle = https://translate.google.cn/#view=home&op=translate&sl=en&tl=zh-CN&text=
URL = %Google%%out%
run,%URL%returnF11:: ;~搜狗一键翻译
send,^cLoop
{StringReplace, clipboard,clipboard, `r`n,%A_SPACE%, UseErrorLevelif ErrorLevel = 0 ;全部替换完,退出循环break
}
Loop
{StringReplace, clipboard,clipboard, %A_SPACE%%A_SPACE%, %A_SPACE%, UseErrorLevel;替换两个空格为一个空格if ErrorLevel = 0break
}IfWinExist, 搜狗翻译
{WinActivate, 搜狗翻译IfWinActive, 搜狗翻译{send,^w}
}str = %clipboard%
stringreplace, out, str, ` , `%20, Allsougou = https://fanyi.sogou.com/?keyword=
URL = %sougou%%out%
run,%URL%return
显示当前系统时间(年月日)
!w:: ;;显示当前的系统时间(年月日)
a = %clipboard%
d = %A_YYYY%.%A_mm%.%A_dd%
clipboard = %d%
Send ^v
sleep,100
clipboard = %a%
return
显示当前的系统时间(年月日-时分秒)
!e:: ;;显示当前的系统时间(年月日-时分秒)
a = %clipboard%
sleep,100
d = %A_YYYY%.%A_mm%.%A_dd%-%A_Hour%:%A_Min%:%A_Sec%
clipboard = %d%
send,^v
sleep,100
clipboard = %a%
return
使用百度搜索关键词
!f:: ;;使用百度搜索关键词
send,^c
run,https://www.baidu.com/s?wd=%clipboard%
return
点击鼠标50次
F1:: ;;点击鼠标50次
Loop 50
{
MouseClick
}
Return
关闭当前窗口
`::
send,!{F4} ;;关闭当前窗口
return
快速设置热词
!-:: ;快速设置热词
send,::我::{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{;}{;}
send,{Enter}
send,{Enter}{R}eturn{Space}
return
快速设置热键
!0:: ;快速设置热键
send,::{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{tab}{;}{;}
send,{Enter}{Enter}{Enter}{Enter}
send,{R}eturn {Space}
send,{Home}{BackSpace}
send,{Up}{Up}{Up}return
anki中用到的代码块
#IfWinActive ahk_class QWidget Esc:: ;;WinHide, 添加
send,!sWinWait, 耗时
WinHide,耗时WinShow, 添加
WinWait, 添加IfWinNotActive, 添加, , WinActivate, 添加,
WinWaitActive, 添加, Send, ^vReturn F5::
send,^+!c ;;将F5作为Anki填空题不改变序号的快捷键
returnF6::
send,^+c ;;将F6作为Anki填空题的快捷键
returnF7:: ;;在中文输入法的情况下设置Latex行间公式环境
Send,^{Space}
Send,^t
Send,e
Send, ^{Space}
send,+
ReturnF8:: ;;在粘贴文本时直接加上anki的LaTeX环境并且进行填空题挖空
send,^x
sleep,20
A := clipboard
b ={{c1::[$]
c=[/$]}}
d= %b% %A% %c%
sleep,20
clipboard = % d
send,^v
sleep,20
clipboard := A
sleep,20ReturnF9:: Send, {SHIFTDOWN}{HOME}{SHIFTUP}
send,{CTRLDOWN}x{CTRLUP}A:= clipboard
b =[$]
c=[/$]
d= %b% %A% %c%
sleep,50
clipboard = % d
send,^v
sleep,50
clipboard := A
sleep,50Send, {SPACE}
Send, {SHIFTDOWN}{CTRLDOWN}{END}{SHIFTUP}{CTRLUP}
Send, {CTRLDOWN}x{CTRLUP}A := clipboard
b ={{c1::[$]
c=[/$]}}
d= %b% %A% %c%
sleep,50
clipboard = % d
send,^v
sleep,50
clipboard := A
sleep,50return!e:: ;;在粘贴文本时直接加上anki的LaTeX环境
A:= clipboard
b =[$]
c=[/$]
d= %b% %A% %c%
sleep,50
clipboard = % d
send,^v
sleep,50
clipboard := A
sleep,50
return!t::
A := clipboard
b ={{c1::[$]
c=[/$]}}
d= %b% %A% %c%
sleep,50
clipboard = % d
send,^v
sleep,50
clipboard := A
sleep,50
return#IfWinActive
限定程序只运行在Word中
#IfWinActive ahk_class OpusApp ;;这个是对应的程序的类别名!e:: ;;显示当前的系统时间
a = %clipboard%
sleep,100
d = %A_Hour%:%A_Min%:%A_Sec%
clipboard = %d%send,{enter}
send,{up}
send,{backspace}
send,^e
send,^v
sleep,100
clipboard = %a%
send,{down}
return#IfWinActive
拷贝文件路径
^!c:: ;一键拷贝文件的路径
; null=
send ^c
sleep,200
clipboard=%clipboard% ;%null%
tooltip,%clipboard%
sleep,500
tooltip,
return
调节窗口透明化
#=:: ;窗口透明化增加或者减弱WinGet, ow, id, AWinTransplus(ow)return#-:: ;窗口透明化增加或者减弱WinGet, ow, id, AWinTransMinus(ow)return
WinTransplus(w){WinGet, transparent, Transparent, ahk_id %w%if transparent < 255transparent := transparent+10elsea = 1if transparentWinSet, Transparent, %transparent%, ahk_id %w%elseWinSet, Transparent, off, ahk_id %w%return
}
WinTransMinus(w){WinGet, transparent, Transparent, ahk_id %w%if transparent > 10transparent := transparent-10WinSet, Transparent, %transparent%, ahk_id %w%return
}
最大化/恢复窗口
#enter:: ;最大化/恢复窗口
WinGet,S,MinMax,A
if S=0WinMaximize,A
else if S=1WinRestore,A
else if S=-1WinRestore,A
return
最小化窗口
#m:: ;窗口最小化
WinMinimize, A
return
使用谷歌搜索多参数版
!o:: ;cosea典藏级原创代码之谷歌搜索终极版
run https://www.google.com/search?q=%clipboard% ;用google搜索剪切板的内容
clipboard1=%clipboard%&tbs=qdr:1,sbd:1
run https://www.google.com/search?q=%clipboard1% ;按时间排序
run https://www.google.com/search?q=%clipboard%&tbs=qdr:m ;只显示最近一个月信息
run https://www.google.com/search?q=%clipboard%&tbs=qdr:y ;只显示最近一年信息
run https://www.google.com/search?q=%clipboard%&as_filetype=pdf ;指定PDF文件
run https://www.google.com/search?q=%clipboard%&tbs=li:1 ;精确匹配
run https://www.google.com/search?&as_epq=%clipboard% ;完全匹配
run https://www.google.com/search?q=%clipboard% inurl:gov ;url包括gov的网站信息
run https://www.google.com/search?q=intitle:%clipboard% ;文章标题中包含关键词的结果
run https://www.google.com/search?q=%clipboard%&source=lnt&lr=lang_zh-CN|lang_zh-TW ;&source=lnt&lr=lang_zh-CN|lang_zh-TW,指定中文网页
run https://www.google.com/search?q=%clipboard%&tbm=isch&tbs=imgo:1 ;&tbm=isch指定搜索谷歌图片
run https://www.google.com/search?q=%clipboard%&tbm=isch&tbs=isz:l ;将URL更改为大尺寸图片&tbs=isz:l
run https://image.baidu.com/search/index?z=3&tn=baiduimage&word=%clipboard% ;z=3是大尺寸,z=9是特大尺寸
run https://www.behance.net/search?content=projects&sort=appreciations&time=week&featured_on_behance=true&search=%clipboard%
run https://www.zcool.com.cn/search/content?&word=%clipboard%
clipboard2=%clipboard%&tbm=isch&tbs=qdr:m,isz:l,imgo:1
run https://www.google.com/search?q=%clipboard2% ;为URL添加&tbs=qdr:m,只显示新近一个月内的图片,&tbs=imgo:1,显示图片大小
tooltip, 那晚,风也美,人也美。。。
sleep 1500
tooltip,
return
如何显示提示的话
!r::
tooltip, 小伙子,你好啊~
sleep 2000
tooltip,return
获取当前鼠标指针的位置并显示出来
#a:: ;获取当前鼠标指针的位置
MouseGetPos, xpos, ypos
clipboard = %xpos%,%ypos%
a = 鼠标位置`(X,Y`) = %xpos%,%ypos%
tooltip, %a%
sleep 1000
tooltip,
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
获取鼠标所在处的RGB值
#a:: ;获取RGB色
MouseGetPos, mouseX, mouseY
PixelGetColor, color, %mouseX%, %mouseY%, RGB
StringRight color,color,6
clipboard = %color%
msg = 当前坐标RGB颜色值的十六进制值为`#%color%.
tooltip, %msg%
sleep 1000
tooltip,
return
倒计时器
#t:: ;倒计时器
InputBox, time, 请输入一个时间(单位是秒)
time := time*1000
Sleep,%time%
msgbox 时间到!!!
return
无格式复制文本
#c:: ;复制并清除把任何复制的文件, HTML 或其他格式的文本转换为纯文本
send,^c
sleep,50
clipboard = %clipboard% ; 把任何复制的文件, HTML 或其他格式的文本转换为纯文本
return
用AutoHotkey驱动蜂鸣器发出声音
#1:: ;用AutoHotkey驱动蜂鸣器发出声音
loop,10
{SoundBeep, 1000, 500 ;第一个参数为声音的频率,第二个参数为每次响的时间,每次响的时候中间会有一个非常小的间隔
}
return
发送一段文字
^!i:: ;;
SendRaw,
(LTrim123
)
Return
连续复制文本内容
flag_copy := 0 ;这个模式变量不可少,一定得有F1:: ;这个键主要是用来设定复制的模式的
flag_copy := not flag_copy
sleep,50
if flag_copy = 1msgbox,打开连续复制功能!clipboard =
if flag_copy = 0msgbox,关闭连续复制功能!clipboard =
return!c::
if flag_copy = 0
{Send,^c ;;用Alt+C替换系统的复制键Ctrl+C
}
if flag_copy =1
{;~ msgbox,复制前剪切板的值为:%clipboard%var = %clipboard% ;新的叠加赋值send ^csleep,50myvar = %var%%clipboard%sleep,20clipboard := myvarsleep,20;~ msgbox,复制后剪切板的值为:%clipboard%
}
return
一键打开jupyter
::*note:: ;;
^!j::
run,cmd.exe
sleep,333
IfWinExist,ahk_class ConsoleWindowClass
{msgbox,1111WinActivate, ahk_class ConsoleWindowClassSleep, 333 IfWinActive, ahk_class ConsoleWindowClass{send,activate{enter}{space}torch{enter}{enter}sleep,333send,jupyter{enter}{space}notebook{enter}{enter} }
}Return
python的代码块
将Windows路径中的左斜杠转化为右斜杠,变为python路径
^!p:: ;;将路径中的左斜杠转化为右斜杠
path_str := clipboard
stringreplace, out, path_str, `\ , `/, All
Clipboard := out
send,^v
Return
发送python的代码块
::*opencv:: ;;
SendRaw,
(LTrim
import cv2 as cv #导入OpenCV模块
path = ''
img = cv.imread(path)
cv.imshow('img',img)
cv.waitKey(0)
)
Return
更改软件的默认安装位置
#z:: ;;更改软件的安装目录
str := clipboard
Sleep, 50
send, ^a
Send, ^c
FullFileName := Clipboard
SplitPath, FullFileName, name
Programpath = D:\Program\
path = %Programpath%%name%Sleep, 50
Clipboard := path
Sleep, 50
send,^v
Sleep, 50
clipboard := strreturn
获得窗口句柄
hwnd := WinExist("dm_soft.txt - 记事本") ;获取窗口句柄
Msgbox, %hwnd%
这里是通过标题名的形式来获得句柄,注意,这里的hwnd是16进制的,因此可能会一些其他软件显示出来
autohotkey如何调用python的程序
#T:: ;
run, test.py
return
或者
#o:: ;;
run, python test.py
Return
电脑上同时装有python和anaconda,左边那个是run test.py的运行结果,调用的anaconda的环境,右边那个是run python test.py的运行的结果,调用的是python的环境。
autohotkey静默不显示界面地运行python程序
CapsLock & e:: ;;
run, pythonw E:\Documents\Desktop\Program\Python\爬虫\百度\百度OCR\test.pyw
Return
需要注意两点,1是python程序的后缀名应该改为pyw,2是应该用pythonw而非python解释器来运行程序。
autohotkey设置命令行打开路径
autohotkey运行命令行命令?
run , python
直接在run命令后面接入想要运行的命令行命令即可
autohotkey等待剪切板中有新的内容
clipboard = ; 让剪贴板初始为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.
ClipWait ; 等待剪贴板中出现新的文本
msgbox,现在剪切板中出现了新的内容了!
鼠标点击
Click ; 在鼠标光标的当前位置点击鼠标左键.
Click 100, 200 ; 在指定坐标处点击鼠标左键.
Click 100, 200, 0 ; 移动而不点击鼠标.
Click 100, 200 right ; 点击鼠标右键.
Click 2 ; 执行双击.
Click down ; 按下鼠标左键不放.
Click up right ; 释放鼠标右键.
验证码识别
$!y:: ; x:=ComVar()
y:=ComVar()send,!a ;这个是调用snipaste进行截图
loop
{state := GetKeyState("LButton", "P")if state ; 如果此状态为 true, 那么说明此刻刚按下了鼠标左键{dm.GetCursorPos(x.ref,y.ref)x1 :=x[]y1 :=y[]break ; 中断循环.}
}Loop
{state := GetKeyState("LButton", "P")if not state ; 如果此状态为 true, 那么用户实际已经松开了鼠标左键.{dm.GetCursorPos(x.ref,y.ref)send,e{Esc} ;这个是释放snipaste的截图x2 :=x[]y2 :=y[]break ; 中断循环.}
}img := dm.Capture(x1,y1,x2,y2,"验证码.bmp")run, pythonw chaojiying.pyw ;调用python的验证码识别程序进行识别
clipboard = ; 让剪贴板初始为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.
ClipWait ; 等待剪贴板中出现新的文本return
百度网盘的自动化登录
enter::
send,17167634850{tab}mianfeivip.comgy ;;百度网盘的账号密码Hwnd:=dm.getmousepointwindow() ;获取鼠标所在的窗口句柄
state := dm.bindwindow(hwnd,"normal","normal","normal",0) ;绑定窗口;找到验证码换一换处的位置
x:=ComVar()
y:=ComVar()
state := dm.FindPic(0,0,2000,2000,"换一换.bmp","000000",0.8,0,x.ref,y.ref);做一下位置偏移调整
x[] := x[]- 85
y[] := y[] - 0;~ dm.moveto(x[],y[])img := dm.Capture(x[],y[],x[]+80,y[]+30,"验证码.bmp")
;~ msgbox,截图状态为`:%img%;运行超级鹰验证码识别程序
run, pythonw chaojiying.pyw
send,{tab}clipboard = ; 让剪贴板初始为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.
ClipWait ; 等待剪贴板中出现新的文本
send,^v;找到登录的图片
state := dm.FindPic(0,0,2000,2000,"登录.bmp","000000",0.8,0,x.ref,y.ref)
dm.moveto(x[],y[])
dm.LeftClick
Sleep, 100
dm.LeftClickdm.Unbindwindowreturn
这个的程序代码就比较长了。
打开设备管理器
#s:: ;;打开设备管理器
run,C:\Windows\System32\devmgmt.msc
Return
重要的不是路径,而是这个运行程序的名称
autohotkey使用try函数
try ; 尝试执行的代码.
{run,C:\Windows\System32\devmgmt.msc1
}
catch e ; 处理由上面区块产生的首个错误/异常.
{MsgBox, An exception was thrown!`nSpecifically: %e%Exit
}
autohotkey用鼠标截图
$!y:: ; x:=ComVar()
y:=ComVar()loop
{state := GetKeyState("LButton", "P")if state ; 如果此状态为 true, 那么说明此刻刚按下了鼠标左键{dm.GetCursorPos(x.ref,y.ref)x1 :=x[]y1 :=y[]break ; 中断循环.}
}Loop
{state := GetKeyState("LButton", "P")if not state ; 如果此状态为 true, 那么用户实际已经松开了鼠标左键.{dm.GetCursorPos(x.ref,y.ref)x2 :=x[]y2 :=y[]break ; 中断循环.}
}msgbox,, ,鼠标按下时的坐标为:%x1%, %y1%,0.5
msgbox,, ,鼠标松开时的坐标为:%x2%, %y2%,0.5img := dm.Capture(x1,y1,x2,y2,"测试截图.bmp")
msgbox,, ,截图过程结束,0.5return
得到当前鼠标按下位置的坐标
!7::
MouseGetPos, xpos, ypos
Msgbox, The cursor is at X%xpos% Y%ypos%.
return
注意这个活的的坐标是相对于某一个特定窗口的坐标
检测鼠标左键是否按下
state := GetKeyState("LButton", "P")
msgbox,% state
autohotkey鼠标连击
$!l:: ; 把 Alt+L 键设置为鼠标连击键 ($ 符号会有助于下面 GetKeyState 的 "P" 模式).
Loop ; 由于没有指定数字, 所以这是个无限循环, 直到遇到内部的 "break" 或 "return".
{if not GetKeyState("l", "P") ; 如果此状态为 true, 那么用户实际已经释放了 F1 键.break ; 中断循环.; 否则 (由于上面没有 "中断"), 继续点击鼠标.Click ; 在当前指针位置点击鼠标左键.
}
return
对复制的文字进行计数
#SingleInstance force ;;执行程序前先关闭程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 统计字符数. 小众计数器未提供源码,自己实现
;
; F12: 统计当前选中文字中的中英文单词数
;
; gaochao.morgen@gmail.com
; 2015/6/21
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#Persistent
#SingleInstance Force
#NoTrayIcon
#NoEnv; 英文标点符号
global Symbols := "^[:;,_!'\-\\\.\*\?\+\[\{\|\(\)\^\$]"
global ToolTipX := A_ScreenWidth / 2
global ToolTipY := A_ScreenHeight / 2F12::ClipSaved := ClipboardAll ; 保存剪切板的内容; 把当前选中的文本拷贝到剪切板,然后统计剪切板的内容ClipBoard := Send ^c ClipWait, 5 ChCount := ChineseCount(ClipBoard)EnCount := EnglishCount(ClipBoard)ClipBoard := ClipSaved ; 恢复剪切板的内容ToolTip, % ShowResult(ChCount, EnCount), %ToolTipX%, %ToolTipY%SetTimer, RemoveToolTip, 3000
ReturnRemoveToolTip:SetTimer, RemoveToolTip, OffToolTip
Return;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 函数 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 统计中文字符
ChineseCount(Input)
{Count := 0; AHKL对一个UTF-8编码的汉字,会循环2次Loop, Parse, Input{if A_LoopField is alnum ; 仅当A_LoopField包含[0-9a-zA-Z]时为真{continue}else if A_LoopField is space{continue}else{pos := RegExMatch(A_LoopField, Symbols)if (ErrorLevel = 0 && pos > 0)continueelseCount := Count + 1}}Return Count
}; 统计英文字符
EnglishCount(Input)
{StringReplace, Input, Input, ', x, All ; It's -> Itxs,视为一个单词StringReplace, Input, Input, -, x, All ; well-defined -> wellxdefined,视为一个单词RegExReplace(Input, "\w+", "", Count) ; PhiLho Return Count
}; 显示统计结果
ShowResult(ChCount, EnCount)
{Result := "中文: "Result .= ChCountResult .= "`r`n"Result .= "英文: "Result .= EnCountResult .= "`r`n"Result .= "总共: "Result .= ChCount + EnCountReturn Result
}
在命令行下面粘贴文字
#IfWinActive ahk_class ConsoleWindowClass
!v::
send %Clipboard%
return
#IfWinActive
先申明一个快捷键,然后在下面实现它
Hotkey, #right, toggleWindowRight
;~ Hotkey, #left, toggleWindowLeft
;~ Hotkey, #up, toggleWindowUp
;~ Hotkey, #down, toggleWindowDowntoggleWindowRight:msgbox,1
return
clipwait的延时用法
!r:: ;;
clipboard :=
ClipWait, 3, 1
if clipboard =
{msgbox,没有等到你需要的内容!msgbox,剪切板里面的内容是 %clipboard%}
else
{msgbox,终于等到了你需要的内容了!msgbox,剪切板里面的内容是 %clipboard%
}Return
一个窗口如果存在就激活它,如果不存在就打开这个文件或者运行对应的程序
#w:: ;;IfWinExist, 问题.txt - 记事本
{WinWait, 问题.txt - 记事本, IfWinNotActive, 问题.txt - 记事本, , WinActivate, 问题.txt - 记事本, WinWaitActive, 问题.txt - 记事本, Send, {CTRLDOWN}{END}{CTRLUP}{ENTER}}
else
{run,E:\Documents\Desktop\问题.txtWinWait, 问题.txt - 记事本, IfWinNotActive, 问题.txt - 记事本, , WinActivate, 问题.txt - 记事本, WinWaitActive, 问题.txt - 记事本, Send, {CTRLDOWN}{END}{CTRLUP}{ENTER}
}Return
连续按一个键多次?
send,{Left 3}
热字符串的触发方式有哪几种?
使用send发送
::yt::
send,Youtube
return
不用send,热字符串直接接到后面,但是这种触发方式会在末尾的时候加上一个空格:Youtube 。
::yt::Youtube
为了避免这种情况,在第一对冒号前面加上"oc?",c代表区分大小写,?表示缩写可以在
:oc?:yt::Youtube
热字符串必须打出字或者字母来才可以触发吗?
如何控制鼠标点击?
注意,这种点击方式是相对坐标,是以窗口的左上角为坐标原点开始的。
!k:: ;;
click,1000,300
Return
autohotkey如何找图片?
1.先把需要寻找的图片保存下来
如何更聪明地设置快捷键?
一般组合键是Ctrl,Alt,Shift和Win加一个英文字母,那么可以这样来记忆,Ctrl代表的是控制,shift是上网的意思,
设置触发快捷键的时候如何分左右?
在按键的前面加上小于<号就是左边的按键,加上大于>号就是右边的按键。
<^k::
send,按下的是左边的Ctrl键
return>^k::
send,按下的是右边的Ctrl键
return
如何得到当前运行的这个脚本所在的路径?
^j:: ;;
msgbox,%A_ScriptFullPath%
Return
如何用autohotkey控制网页元素?
注意,以下操作要使用谷歌Chrome浏览器才可以,360极速浏览器没有copy js path的选项。
1.Ctrl+shift+i,打开浏览器的审查功能
2.打开Console控制台
3.选中网页中的一个元素,点击审查,在打开的源码页面里面选择copy,copy js path,然后将复制的内容粘贴到console控制台里面,可以看到js 路径对应的网页元素已经是被标记上了。
4.可以对网页元素有以下几种操作(对知网首页进行的测试)
对按钮进行点击:
document.querySelector("#CJFQ > a").click()
对文本框中的内容进行改写:
document.querySelector("#txt_SearchText").value = "深度学习"
对下拉菜单进行选择
5.在用ALT+D键将焦点聚集在地址处,然后在地址栏处键入命令javascript:之后就可以开启JavaScript的命令输入了
#k:: ;;
send,!d
Sleep, 100
send,{text}javascript:
Clipboard=
(document.querySelector("#CJFQ > a").click()
)
send,^v
send,{enter}
Return
Anki配合天若OCR使用?
Esc:: ;;WinHide, 添加
send,!sWinWait, 耗时
WinHide,耗时WinShow, 添加
WinWait, 添加IfWinNotActive, 添加, , WinActivate, 添加,
WinWaitActive, 添加, Send, ^vReturn
autohotkey获得所有窗口的标题?
WinGet, id, list,,, Program Manager
Loop, %id%
{this_id := id%A_Index%WinActivate, ahk_id %this_id%WinGetTitle, this_title, ahk_id %this_id%msgbox,% this_title
}
autohotkey关闭所有窗口?
WinGet, id, list,,, Program Manager
Loop, %id%
{this_id := id%A_Index%WinClose, ahk_id %this_id%
}
autohotkey如何释放所有按键?
+!s:: ;;
KeyList := "Shift|Ctrl|Alt|CapsLock|space" ; and so onLoop, Parse, KeyList, |
{If GetKeystate(A_Loopfield, "P")Send % "{" A_Loopfield " Up}"
}Return