只要一打开浏览器时间总是过得特别快,光阴在一个链接到另一个链接中消失不见,我想找个软件可以定时提醒我说“你已经上网很久啦,该干麻快去干麻!”找来找去,找到这个叫AutoHotKey的软件。AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。综合各方面来看,它是能满足我最多需要而又是最小最干净的软件了。
我开始想所有使用命令脚本都在AutoHotKey.ini文件中,这样修改启动都方便,但现在觉得这种看法是错的,应该把实现各种功能的脚本分开存放,通过一个随机启动的脚本实现调用。使用下面命令设置这个脚本随机启动:
mklink autohotkey.ahk " C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" "d:\Portable\AutoHotKey_cn\AutoHotKey.ini"
几个按键的符号
Ctrl 的符号是 ^
Alt 的符号是 !
Shift 的符号是 +
Win 键的符号是 #
这东西要从头学起当然也是可以(把这个页面翻完可以看到很多有东西),不过貌似我没有这个耐性,基本上就是把我想要的功能描述一下,告诉google,找到代码,看着手册改改。
AutoHotKey.ini文件的内容如下,像我的其它文件一样,我总是写满注释防止我忘了这是什么东东。
;重启脚本,停止脚本,在GVIM的新标签页中编辑脚本
^esc::reload
!esc::Suspend
^#i::run "c:\Program Files\vim\vim72\gvim.exe" -p --remote-tab-silent "d:\Portable\AutoHotKey_cn\AutoHotKey.ini"
;--------------------------------------------
;按win+w调整当前窗口
^#w::Winmove,A,,0,310,1024,280
;--------------------------------------------
;按ctrl+win+v启动gvim,若gvim已运行则最小化,则把它变透明
^#v::
DetectHiddenWindows, ON
SetTitleMatchMode, 2
IfWinNotExist, - GVIM
;判断GVIM是否启动
Run, c:\Program Files\vim\vim72\gvim.exe
;没启动则启动GVIM
Else
{
IfWinActive, - GVIM
;启动的话则判断TC窗口是否激活
WinMinimize,
;激活的话就最小化
Else
{
winactivate, - GVIM ;激活指定窗口
winset,AlwaysOnTop,, - GVIM ; 将当前窗口置顶, 即始终保持窗口在其他窗口上面
winmove, - GVIM,,0,310,1024,280
WinSet Style,ON,-0xC00000,- GVIM
WinSet Transparent,210,- GVIM
WinSet, Style, -0xC00000, A ;移除当前激活窗口的标题栏
}
;没激活的话就激活
}
return,
;--------------------------------------------
;当前窗口不透明
^#t::WinSet, Transparent, Off, A
;--------------------------------------------
;启动迅雷
^#x::
run d:\Portable\Thunder Network\Thunder\thunder.exe
;--------------------------------------------
^#e::
;快捷键设定为Win + E
IfWinNotExist, Total Commander 7.50 - ITeam S.A.
;判断TC是否启动
Run, d:\Portable\TotalCommanderPortable\TotalCommanderPortable.exe
;没启动则启动TC
Else
{
IfWinActive, Total Commander 7.50 - ITeam S.A.
;启动的话则判断TC窗口是否激活
WinMinimize,
;激活的话就最小化
Else
WinActivate,
;没激活的话就激活
}
return,
;--------------------------------------------
;福昕阅读器快捷键设置
^#k::
run d:\Portable\AutoHotKey_cn\ahk_script\pdf_key.ahk
;--------------------------------------------
;定时提醒
^#d::
run d:\Portable\AutoHotKey_cn\ahk_script\time_lock.ahk
;--------------------------------------------
;关机倒计时
^#s::
run d:\Portable\AutoHotKey_cn\ahk_script\shutdown.ahk
;--------------------------------------------
pdf_key.ahk文件
;福昕阅读器快捷键设置
$j:: ;按j键滚动鼠标4下
if WinActive("ahk_class classFoxitReader")
{
Click , WD,4
}
Else {
Send {j}
}
Return
$k:: ;按k键向上滚动鼠标4下
if WinActive("ahk_class classFoxitReader")
{
Click , WU,4
}
Else {
Send {k}
}
Return
time_lock.ahk文件
;定时提醒
InputBox, time, 倒计时, 请输入一个时间(单位是分钟)
time := time*60000
Sleep,%time%
Loop
{
MsgBox 262208, 时间到了, 该干麻干麻去!!,10
IfMsgBox Timeout
Continue
Else
Break
}
Return
ExitApp
shutdown.ahk文件
;功能:
;1 到几点几分几秒定时关机;——实际上只能精确到分钟
;2 指定多少分钟后定时关机;
;3 立即关机
#SingleInstance
#NoTrayIcon
gui, font, s14
gui,add,edit,y+20 w50 h25
Gui, Add, UpDown,h25 vh Range1-24, %A_Hour%
gui,add,text,x+5 yp+5,时
gui,add,edit,x+5 yp-5 w50 h25
Gui, Add, UpDown,h25 vm Range0-59, %A_Min%
gui,add,text,x+5 yp+5,分
gui,add,edit,x+5 yp-5 w50 h25,
Gui, Add, UpDown,h25 vs Range0-59,%A_Sec%
gui,add,text,x+5 yp+5,秒
Gui,Add,Button,x+20 yp-5 h30 gst1,关机
Gui,Add,Edit,x15 y+20 w50 h30 Number vt,15
gui,add,text,x+10 yp+5,分钟后
Gui,Add,Button,x+20 yp-5 h30 gst,关机
Gui,Add,Button,x15 y+20 h30 gst2,立即关机
Gui,Add,Button,x+10 h30 gblog,取消
Gui, Color, E8E8FF
Gui, Show
Return
GuiEscape:
GuiClose:
ExitApp
st:
gui,submit
loop,%t%
{
if (a_index>t)
{
break
}
sleep,60000
count := t-a_index
ToolTip,剩余:%count% 秒关机
}
ToolTip
;MsgBox ,32,关机倒计时,定时关机的时间到了,确定要关闭计算机吗?`n`n此框30秒内自动确定,30
MsgBox ,33,关机倒计时,定时关机的时间到了,确定要关闭计算机吗?`n`n此框30秒内自动确定,30
IfMsgBox Cancel
;MsgBox 取消了关机
return
Shutdown, 0
return
st1:
gui,submit
mh := h - A_Hour
mm := m - A_Min
;ms := s - A_Sec
shut_time := (60*mh + mm)
;sleep,%shut_time%
loop,%shut_time%
{
if (a_index>shut_time)
{
break
}
sleep,60000
count := shut_time-a_index
ToolTip,剩余:%count% 秒关机
}
ToolTip
MsgBox ,33,关机倒计时,定时关机的时间到了,确定要关闭计算机吗?`n`n此框30秒内自动确定,30
IfMsgBox Cancel
;MsgBox 取消了关机
return
Shutdown, 0
return
st2:
Shutdown, 1
return
ExitApp
return
初用AutoHotKey觉得这东西强大得不得了,微软真应该在附件只附带这么个工具。
(完)
AutoHotkey确实很强大
回复删除