最好的AutoHotKey宏?

时间:2008-09-19 01:20:50

标签: automation macros

我使用AutoHotKey for Windows宏。最常见的是我使用它来定义启动/聚焦特定应用程序的热键,以及一个将即时电子邮件消息发送到我的待办事项列表中的热键。我还有一个紧急的应用程序可以杀死所有我占用大量内存的应用程序(Outlook,Firefox等)。

那么,有没有人有任何好的AHK宏可以分享?

9 个答案:

答案 0 :(得分:13)

非常简单实用的代码段:

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:\ "
    }
}

答案 1 :(得分:8)

在选定的文字/单词上添加周围的引号 在撰写电子邮件或编写代码时很有用......

Doubleclick单词,点击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

答案 2 :(得分:7)

这是一个非常简单但有用的脚本:

^SPACE::  Winset, Alwaysontop, , A

使用CTRL + Space将任何窗口始终置于顶部。

答案 3 :(得分:6)

我在开始菜单中有这个,以便在重新启动计算机后戴上耳机时不会毁了我的耳朵

sleep, 5000
SoundSet, 1.5 ; really low volume

答案 4 :(得分:4)

我使用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

答案 5 :(得分:3)

这是一个简单的死片,可以使用鼠标按钮快速关闭当前窗口。

这是你在Windows中经常执行的操作之一,你会惊讶于你节省了多少时间,不再需要为那个小X拍摄。使用5键鼠标,我觉得这很有用的重新分配“前进”按钮。

#IfWinActive  ;Close active window when mouse button 5 is pressed
  XButton2::
    SendInput {Alt Down}{F4}{Alt Up}
    Return
#IfWinActive  

要考虑使用选项卡式文档的程序(如Web浏览器),这里有一个更全面的版本:

;-----------------------------------------------------------------------------
; 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等映射到我编写的宏时很有用,这些宏将当前选定的消息移动到特定文件夹(例如“个人归档”,“工作归档”等等)但这有点复杂。

答案 6 :(得分:2)

AutoHotKey论坛中有很多好的:

http://www.autohotkey.com/forum/forum-2.html&sid=8149586e9d533532ea76e71e8c9e5b7b

有多好?真的取决于你想要/需要什么。

答案 7 :(得分:2)

答案 8 :(得分:2)

修复了在“确认文件替换”对话框顶部显示“复制”对话框时将文件复制到FTP服务器时的问题(非常烦人):

SetTimer, FocusOnWindow, 500
return

FocusOnWindow:
IfWinExist, Confirm File Replace
    WinActivate
return

一个用于停用无用的Caps-lock键:

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