我将 AutoHotKey 用于 Windows 宏。我最常使用它来定义启动/聚焦特定应用程序的热键,以及将即时电子邮件消息发送到我的 ToDo 列表的热键。我还有一个紧急情况,它会杀死我所有占用大量内存的大型应用程序(Outlook、Firefox 等)。
那么,有没有人有好的 AHK 宏可以分享?
我将 AutoHotKey 用于 Windows 宏。我最常使用它来定义启动/聚焦特定应用程序的热键,以及将即时电子邮件消息发送到我的 ToDo 列表的热键。我还有一个紧急情况,它会杀死我所有占用大量内存的大型应用程序(Outlook、Firefox 等)。
那么,有没有人有好的 AHK 宏可以分享?
非常简单和有用的片段:
SetTitleMatchMode RegEx ;
; Stuff to do when Windows Explorer is open
;
#IfWinActive ahk_class ExploreWClass|CabinetWClass
; create new folder
;
^!n::Send !fwf
; create new text file
;
^!t::Send !fwt
; open 'cmd' in the current directory
;
^!c::
OpenCmdInCurrent()
return
#IfWinActive
; Opens the command shell 'cmd' in the directory browsed in Explorer.
; Note: expecting to be run when the active window is Explorer.
;
OpenCmdInCurrent()
{
WinGetText, full_path, A ; This is required to get the full path of the file from the address bar
; Split on newline (`n)
StringSplit, word_array, full_path, `n
full_path = %word_array1% ; Take the first element from the array
; Just in case - remove all carriage returns (`r)
StringReplace, full_path, full_path, `r, , all
full_path := RegExReplace(full_path, "^Address: ", "") ;
IfInString full_path, \
{
Run, cmd /K cd /D "%full_path%"
}
else
{
Run, cmd /K cd /D "C:\ "
}
}
这是一个如此简单但有用的脚本:
^SPACE:: Winset, Alwaysontop, , A
使用 CTRL + Space 将任何窗口设置为始终位于顶部。
在选定的文本/单词上添加引号在
编写电子邮件或编码期间很有用...
双击单词,按 Win+X,周围有引号
; Win + X
#x:: ; Attention: Strips formatting from the clipboard too!
Send ^c
clipboard = "%clipboard%"
; Remove space introduced by WORD
StringReplace, clipboard, clipboard,%A_SPACE%",", All
Send ^v
return
; 我的开始菜单中有这个,这样重启电脑后戴上耳机就不会损坏耳朵
sleep, 5000
SoundSet, 1.5 ; really low volume
我使用 AutoHotKey创建新的Outlook对象
; Win+Shift+M = 新电子邮件
#+m:: Run "mailto:"
; 外表
#^M:: Run "%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE" /recycle
; Win+Shift+A = 创建新的日历约会
#+A:: Run "%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE"/c ipm.appointment
; Win+Shift+T = 创建新任务;Win+Shift+K = 新任务
#+T:: Run "%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE"/c ipm.task
#+K:: Run "%ProgramFiles%\Microsoft Office\Office12\OUTLOOK.EXE"/c ipm.task
这是一个非常简单的片段,可以使用鼠标按钮快速关闭当前窗口。
这是您在 Windows 中最常执行的操作之一,您会惊讶于不再需要为那个小 X 拍摄而节省了多少时间。使用 5 键鼠标,我发现这是一个非常有用的重新分配“前进”按钮。
#IfWinActive ;Close active window when mouse button 5 is pressed
XButton2::
SendInput {Alt Down}{F4}{Alt Up}
Return
#IfWinActive
考虑到使用选项卡式文档的程序(如网络浏览器),这里有一个更全面的版本:
;-----------------------------------------------------------------------------
; Bind Mouse Button 5 to Close Tab / Close Window command
;-----------------------------------------------------------------------------
; Create a group to hold windows which will use Ctrl+F4 instead of Alt+F4
GroupAdd, CtrlCloseGroup, ahk_class IEFrame ; Internet Explorer
GroupAdd, CtrlCloseGroup, ahk_class Chrome_WidgetWin_0 ; Google Chrome
; (Add more programs that use tabbed documents here)
Return
; For windows in above group, bind mouse button to Ctrl+F4
#IfWinActive, ahk_group CtrlCloseGroup
XButton2::
SendInput {Ctrl Down}{F4}{Ctrl Up}
Return
#IfWinActive
; For everything else, bind mouse button to Alt+F4
#IfWinActive
XButton2::
SendInput {Alt Down}{F4}{Alt Up}
Return
#IfWinActive
; In FireFox, bind to Ctrl+W instead, so that the close command also works
; on the Downloads window.
#IfWinActive, ahk_class MozillaUIWindowClass
XButton2::
SendInput {Ctrl Down}w{Ctrl Up}
Return
#IfWinActive
Visual Studio 2010 不能轻易添加到CtrlCloseGroup
上面,因为它的窗口类/标题不容易预测(我认为)。这是我用来处理它的片段,包括几个额外的有用绑定:
SetTitleMatchMode, 2 ; Move this line to the top of your script
;-----------------------------------------------------------------------------
; Visual Studio 2010
;-----------------------------------------------------------------------------
#IfWinActive, Microsoft Visual Studio
; Make the middle mouse button jump to the definition of any token
MButton::
Click Left ; put the cursor where you clicked
Send {Shift Down}{F2}{Shift Up}
Return
; Make the Back button on the mouse jump you back to the previous area
; of code you were working on.
XButton1::
Send {Ctrl Down}{Shift Down}{F2}{Shift Up}{Ctrl Up}
Return
; Bind the Forward button to close the current tab
XButton2::
SendInput {Ctrl Down}{F4}{Ctrl Up}
Return
#IfWinActive
我还发现在 Outlook 中将 ALT+1、ALT+2 等映射到我编写的宏很有用,这些宏将当前选定的消息移动到特定文件夹(例如“个人归档”、“工作归档”等)但这有点复杂。
AutoHotKey 论坛中有很多不错的:
http://www.autohotkey.com/forum/forum-2.html&sid=8149586e9d533532ea76e71e8c9e5b7b
有多好?真的取决于你想要/需要什么。
我一直使用这个,通常是为了快速访问 MySQL 命令行。
修复在“确认文件替换”对话框顶部出现“正在复制”对话框时将文件复制到 FTP 服务器的问题(非常烦人):
SetTimer, FocusOnWindow, 500
return
FocusOnWindow:
IfWinExist, Confirm File Replace
WinActivate
return
一种停用无用的大写锁定键:
Capslock::
return
CTRL + shift + c 将光标下方的颜色复制到剪贴板(十六进制)
^+c::
MouseGetPos,x,y
PixelGetColor,rgb,x,y,RGB
StringTrimLeft,rgb,rgb,2
Clipboard=%rgb%
Return
在活动字段中写下您的电子邮件地址(Win 键 + m)
#m::
Send, my@email.com{LWINUP}
Sleep, 100
Send, {TAB}
return