Unplug Your Mouse Workflow Automation with AutoHotKey
Andrew Weidner Robert Wilson Mice make simple things easy and complex things impossible. Mice make simple things easy and complex things impossible.
Mice are useful and fun, but they tend to slow down repetitive file management tasks. Do things faster with your keyboard. Keyboard Optimization: why type fifty-two keys when you can do the same thing with two?
(Ctrl + 4) Overview
• Keyboard Shortcuts • AutoHotkey Scripts • Tools & References • Demonstration Keyboard Shortcuts
Windows Explorer
Tab = cycle fields (add Shift to reverse) Alt + Tab = application switcher Enter = open selected file/folder Backspace = return to parent folder Alt + F + M = rename selected file/folder (also F2) Alt + F + W + F = create a new folder Home/End = go to first/last file
Keyboard Shortcuts
ACDSee Viewer
Page Down = next image Page Up = previous image (NumPad) * = fit image to window (NumPad) + = zoom in (NumPad) - = zoom out Arrow Keys = move around the image Home/End = go to first/last image
Keyboard Shortcuts
Mozilla Firefox
Ctrl + T = open new tab Ctrl + Tab = cycle tabs (add Shift to reverse) Alt + Left = go to previous page (also Backspace) Ctrl + L = focus on address bar Tab = cycle links (add Shift to reverse) Arrow Keys = scroll through the page Ctrl + B = show/hide bookmarks sidebar
AutoHotkey Scripts
Simple: another Enter key
; plain text file with .AHK extension ; comments begin with a semicolon
; define the hotkey: Alt + a !a:: ; define the action Send, {Enter}
AutoHotkey Scripts
Simple: type some text
; hotkey: Ctrl + 1 ^1::
; use the ` symbol before a literal comma ; `n inserts a new line, `t inserts a tab Send, Sincerely`,`n`t
AutoHotkey Scripts
Complex: create a folder
; hotkey: Win + k #k:: Send, {AltDown}f{AltUp} Sleep, 200 Send, w Sleep, 200 Send, f
AutoHotkey Scripts
Complex: rename a file
; hotkey: Ctrl + Alt + r ^!r:: Send, {F2} Sleep, 200 Send, {Home} Sleep, 200 Send, 2013
AutoHotkey Scripts
Complex: paste a file in multiple folders
Pause::Pause ; pause script with the Pause key !v:: Send, {CtrlDown}v{CtrlUp} sleep, 400 Loop { Send, {Backspace} Sleep, 1400 Send, {Down} Sleep, 400 Send, {Enter} Sleep, 800 Send, {CtrlDown}v{CtrlUp} Sleep, 400 }
AutoHotkey Scripts
Complex: open with Photoshop
NumpadDot & NumpadEnter:: ClipMem = %Clipboard% ; save current clipboard value clipboard = Send, ^c ; copy the file name ClipWait ; insert the file name at the end of the Photoshop Run command Run, C:\Program Files\Adobe\Adobe Photoshop CS5 (64 Bit)\Photoshop.exe %clipboard% clipboard = %ClipMem% ; restore the original clipboard value Return
AutoHotkey Scripts
Application: ETD_Metadata
Finds keywords in author-provided metadata and enters them in an XML file. ETD Metadata: Part 1 Open author-provided metadata
#Home:: DefinedAddress = Declare blank variables for future use
DefinedKeywords = KeywordMeta = Clipboard = Copy file path
SendInput, {F4}{ControlDown}a{ControlUp} sleep, 200 Send ^c ClipWait Sleep, 100 DefinedAddress = %clipboard% Assign file path to variable
SetWorkingDir, %DefinedAddress% Open index.docx file in Wordpad Run, Wordpad.exe index.docx WinWaitActive, index ETD Metadata: Part 2 Find Keywords Keywords: Function title Sleep, 100 clipboard = Open Find dialog SendInput, {CtrlDown}f{ CtrlUp} WinWaitActive, Find Sleep, 100 Type ‘Keywords’ SendInput, Keywords Sleep, 100 SendInput, {Enter}{Esc} Sleep, 100 SendInput, {Tab} Send ^c Copy text ClipWait Store text in variable for later use DefinedKeywords = %clipboard% ETD Metadata: Part 3 Create GUI for Keyword Input
/* Comma + space occurrences in DefinedKeywords variable are replaced with Tab so keywords are sent to appropriate fields later */ StringReplace, DefinedKeywords, DefinedKeywords, `,%A_Space%, %a_tab%, all
; create window for keyword input, separated into individual variables KeywordWindow: Gui, 30:+AlwaysOnTop Gui, 30:Add, Text, x6 y6 w100, Keyword1: Gui, 30:Add, Edit, x6 y+5 w100 vKeyword1
Gui, 30:Add, Text, x6 y6 w100, Keyword2: Gui, 30:Add, Edit, x6 y+5 w100 vKeyword2 ; code repeats to Keyword10 ETD Metadata: Part 4 Send Keywords ; submit each field as a defined variable: Keyword1-10
Gui, 30:Add, Button, x6 default, OK Create OK Button Gui, 30:Show,, Keywords
Sleep, 100 WinActivate, Keywords SendInput, %DefinedKeywords% Send formatted keywords Sleep, 100
30GuiClose: 30ButtonOK: Close Window Gui, 30:Submit ETD Metadata: Part 5 Open Metadata XML File
IfExist, C:\Program Files\jEdit\jedit.exe Open metadata.xml in jEdit (.exe or .bat) Run, C:\Program Files\jEdit\jedit.exe metadata.xml Else Run, C:\Program Files\jEdit\jedit.bat metadata.xml
WinWait, jEdit Wait for jEdit Sleep, 1000 to load the file
SendInput, ^{Home} Move to Sleep, 200 top of file
Send, {ControlDown}f{ControlUp} Sleep, 200 Open Search window ETD Metadata: Part 6 Prepare for Keyword Entry WinWait, Search And Replace, Wait for Search window to open IfWinNotActive, Search And Replace, , WinActivate, Search And Replace, WinWaitActive, Search And Replace, Search for ‘#Keywordmeta’ SendInput , {#}{ShiftDown}k{ShiftUp}eywordmeta{Enter} Sleep, 200 Types ‘#Keywordmeta’ SendInput , {Esc} Close Search window ‘#Keywordmeta’ is highlighted
ETD Metadata: Part 7 Enter Keywords If (Keyword1 <> "") Send keywords stored in SendInput,
• AutoHotkey Recorder: produces script code • Mobile AutoHotkey: use on any Windows system • AutoIt Window Spy: screen coordinates & title info • Website: www.autohotkey.com • Documentation: www.autohotkey.com/docs • Forum: www.autohotkey.com/board
Demonstration
• ETD_Metadata (rw) • SuperPaste (rw) • OpenWithPhotoshop (rw) • TDNP_Microfilm (aw) • NewspaperNotes (aw) • DashboardTools (aw)