23

我将 AutoHotKey 用于 Windows 宏。我最常使用它来定义启动/聚焦特定应用程序的热键,以及将即时电子邮件消息发送到我的 ToDo 列表的热键。我还有一个紧急情况,它会杀死我所有占用大量内存的大型应用程序(Outlook、Firefox 等)。

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

4

9 回答 9

14

非常简单和有用的片段:

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:\ "
    }
}
于 2008-09-19T09:09:14.327 回答
11

这是一个如此简单但有用的脚本:

^SPACE::  Winset, Alwaysontop, , A

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

于 2012-03-04T12:55:51.840 回答
9

在选定的文本/单词上添加引号在
编写电子邮件或编码期间很有用...

双击单词,按 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
于 2010-02-25T02:59:42.783 回答
7

; 我的开始菜单中有这个,这样重启电脑后戴上耳机就不会损坏耳朵

sleep, 5000
SoundSet, 1.5 ; really low volume
于 2009-04-23T07:15:24.920 回答
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
于 2010-02-25T02:57:04.253 回答
4

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

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

于 2011-03-17T08:14:08.140 回答
3

AutoHotKey 论坛中有很多不错的:

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

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

于 2008-09-19T02:16:32.413 回答
2

我一直使用这个,通常是为了快速访问 MySQL 命令行。

http://lifehacker.com/software/featured-windows-download/make-a-quake+style-command-prompt-with-autohotkey-297607.php

于 2008-09-19T09:24:53.930 回答
2

修复在“确认文件替换”对话框顶部出现“正在复制”对话框时将文件复制到 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
于 2013-01-22T09:21:14.847 回答