AutoHotkey: Difference between revisions
Daonlyfreez (talk | contribs) m →History: Updated changed link to AHKLinux |
Daonlyfreez (talk | contribs) m →History: Added new Unicode port |
||
Line 40: | Line 40: | ||
Programmers within the AutoHotkey community have also begun development on their own versions/ports of the program: |
Programmers within the AutoHotkey community have also begun development on their own versions/ports of the program: |
||
*[http://www.autohotkey.com/forum/topic34070.html AutoHotkey_L] - extended Windows version |
*[http://www.autohotkey.com/forum/topic34070.html AutoHotkey_L] - extended Windows version |
||
* |
*[http://www.autohotkey.com/forum/topic50485.html AutoHotkeyU] - [[Unicode]] version |
||
*[http://www.autohotkey.com/forum/topic43049.html AutoHotkey.dll] - [[dynamically loaded library|DLL]] version of AutoHotkey |
|||
*[http://www.autohotkey.com/forum/topic27146.html AutoHotkey for PocketPC] - [[WinCE]] |
*[http://www.autohotkey.com/forum/topic27146.html AutoHotkey for PocketPC] - [[WinCE]] |
||
*[http://www.autohotkey.com/forum/topic50534.html AHKLinux] - Linux/[[Wine (software)|Wine]] |
*[http://www.autohotkey.com/forum/topic50534.html AHKLinux] - Linux/[[Wine (software)|Wine]] |
Revision as of 14:13, 31 October 2009
Developer(s) | Chris Mallett |
---|---|
Stable release | 1.0.48.05
/ September 25, 2009 |
Repository | |
Operating system | Microsoft Windows |
Type | Scripting language Automation GUI utility |
License | GPL |
Website | http://www.autohotkey.com/ |
AutoHotkey is a free, open source macro-creation and automation software utility which allows users to automate repetitive tasks. Any application user interface can be modified by AutoHotkey (for example, with EMACS style [1]). It is driven by a custom scripting language that is aimed specifically at providing keyboard shortcuts or hotkeys.
Features
AutoHotkey scripts can be used to launch programs, open documents, send keystrokes and send mouse clicks and movements[2]. AutoHotkey scripts can also assign, retrieve, and manipulate variables, run loops and manipulate windows, files, and folders. These commands can be triggered by a hotkey, such as a script that would open an internet browser whenever the user presses Ctrl+Alt+i on the keyboard. Keyboard keys can also be remapped or disabled, such that pressing the letter q, for example, might result in the computer receiving an r, or nothing at all[3]. AutoHotkey also allows for 'hotstrings' that will automatically replace certain text as it typed; the most typical use for hotstrings is expanding abbreviations, such as assigning the string "btw" to send the text "by the way" when typed[4].
AutoHotkey has been used by doctors in the radiology world [5].
More complex tasks can be achieved with custom data entry forms (GUI windows), working with the system registry, or using a window's own API by manipulating certain DLLs. The scripts can be compiled into an executable file that can be run on other computers that do not have AutoHotkey installed. The source code is in C++ and can be compiled with Visual Studio Express.
Memory access through pointers is allowed just as in C[6].
Common AutoHotkey tasks:
- Remapping the keyboard, such as from QWERTY to Dvorak or other alternative keyboard layouts.
- Using shortcuts to fill in frequently-used filenames or other phrases.
- Controlling the mouse cursor with a keyboard or joystick.
- Opening programs, documents, and websites with simple keystrokes.
- Adding a signature to e-mail, message boards, etc.
- Monitoring a system and automatically closing unwanted programs.
- Scheduling an automatic reminder, system scan, or backup.
History
The first public beta of AutoHotkey was released on November 10, 2003[7] after author Chris Mallett's proposal to integrate hotkey support into AutoIt v2 failed to generate response from the AutoIt community.[8][9] So technically Autohotkey is a fork of AutoIt at v.3.1. Later, AutoIt v3 switched from GPL to closed source because of "other projects repeatedly taking AutoIt code" and "setting themselves up as competitors."[10] Development of AutoHotkey now continue separate from AutoIt, while scripts are most compatible.
The most recent update of the AutoHotkey software was on September 25, 2009.[11].
Programmers within the AutoHotkey community have also begun development on their own versions/ports of the program:
- AutoHotkey_L - extended Windows version
- AutoHotkeyU - Unicode version
- AutoHotkey.dll - DLL version of AutoHotkey
- AutoHotkey for PocketPC - WinCE
- AHKLinux - Linux/Wine
- IronAHK - .NET/Mono version for Windows/Linux/Macintosh
Examples
The following script will allow a user to search for a particular word or phrase using Google. After copying text from any application to the Clipboard, pressing the configurable hotkey Win+g will open the user's default web browser and perform the search.
#g:: ; Win+g Run http://www.google.com/search?q=%clipboard% Return
The following is an example of the script required to create the hotstring "afaik," which is automatically replaced by "as far as I know":
::afaik::as far as I know
The following is an example of a simple function in AutoHotkey. When a URL is copied to the Clipboard, the hotkey Alt+x will check the URL for any/all parenthesis and replace them with alternate characters before pasting the URL from the Clipboard:
!x:: ; Alt+x URLReplace() Send ^v ; Ctrl+v Return URLReplace() { StringReplace, Clipboard, Clipboard, (, `%28, All StringReplace, Clipboard, Clipboard, ), `%29, All }
In this example, once the contents of a user name or IP Address link have been copied from anywhere on Wikipedia's site to the Clipboard (using Firefox), the following script allows a user to perform the function CopyUser on the Clipboard's contents and save it to a variable designated by either the hotkey Ctrl+Shift+W or the hotkey Ctrl+Shift+E. The hotkey Ctrl+Shift+R utilizes the resultant variables to produce a revert edits summary.
^+w::last := CopyUser() ; Ctrl+Shift+w ^+e::edit := CopyUser() ; Ctrl+Shift+e CopyUser() { Clipboard = StringReplace, Clipboard, Clipboard, http://en.wikipedia.org/ StringReplace, Clipboard, Clipboard, wiki/ StringReplace, Clipboard, Clipboard, w/index.php?title= StringReplace, Clipboard, Clipboard, Special:Contributions&target= StringReplace, Clipboard, Clipboard, User: StringReplace, Clipboard, Clipboard, &action=edit StringReplace, Clipboard, Clipboard, _, %A_Space%, All Return, Clipboard } ; Ctrl+Shift+r ^+r::Send revert edits by [[Special:Contributions/%edit%|%edit%]] to last version by %last%
More examples of what can be done with AutoHotkey can be found in the Scripts and Functions section of Autohotkey's online forum. Many of these scripts have also have been placed into an AutoHotkey wiki based on the purpose of the script.
Community
The online community forum for Autohotkey has around 15,000 registered users and around 300,000 posts as of October 2009[12].
User Contributed Features
The following extensions/interops/inline script libraries for usage with/from other programming languages are available or in development:
- .NET Framework - VB/C# (.NET)
- LibLua - Lua
- Lisp on win32 - Lisp
- Embeddable Common Lisp - ECL
- Windows Scripting Host - VBScript/JScript
- Embedded machine code - Machine code
Other:
- Aspect Oriented Programming
- COM Wrappers - COM
- Dynamic Code Generation
- Human Interface Device(HID) Support - HID
- Internet Explorer Automation
- SmartGUI Creator
- Sparrow AHK Web Server
- Synthetic programming
- Windows Event Hooks
See also
- Autokey (for Linux)
- AutoIt
- Automator (for Macintosh)
- Bookmarklet
- Gui4Cli
- iMacros for Firefox
- Visual Basic
References
- ^ Ericasadun 2005 Life Hacker
- ^ AutoHotkey Tutorial: Macro and Hotkey Creation
- ^ Remapping Keys and Buttons
- ^ Hotstrings and Auto-replace (similar to AutoText and AutoCorrect)
- ^ Alkasab 2008 SIIM
- ^ AutoHotkey Changes and New Features, v1.0.47 - June 19, 2007
- ^ AutoHotkey Changelog for Years 2003-2004
- ^ Author Chris Mallett's post on the AutoHotkey Forums
- ^ An AutoIt / AutoHotkey comparison
- ^ Licensing Opinions - AutoIt Forums
- ^ Main Page with v1.0.48.05 Release Accouncement
- ^ AutoHotkey Community Forum Page
External links
- Official website
- Documentation
- AutoHotkey.net - user projects and archives
- Script Showcase
- Community forum
- #ahk on freenode