AUTOHOTKEY AutoHotKey script
AI-powered detection and analysis of AutoHotKey script files.
Instant AUTOHOTKEY File Detection
Use our advanced AI-powered tool to instantly detect and analyze AutoHotKey script files with precision and speed.
File Information
AutoHotKey script
Code
.ahk
text/plain
AutoHotkey File Format
Overview
AutoHotkey (AHK) is a powerful automation scripting language for Windows that allows users to automate repetitive tasks, create custom keyboard shortcuts, remap keys, and develop GUI applications. Created by Chris Mallett in 2003, AutoHotkey provides an accessible way to enhance productivity and customize the Windows experience.
Technical Details
- MIME Type:
text/plain
- File Extension:
.ahk
- Category: Code
- First Appeared: 2003
- Platform: Windows (primary), Linux/macOS (via Wine)
- Current Version: AutoHotkey v2.0 (latest), v1.1 (stable legacy)
Structure and Syntax
AutoHotkey scripts use a simple, intuitive syntax with hotkeys, commands, and functions that execute when triggered by user actions or system events.
Basic Script Structure
; This is a comment
; Basic AutoHotkey script
; Simple hotkey - Win+J opens Notepad
#j::Run, notepad.exe
; Text replacement - typing "btw" becomes "by the way"
::btw::by the way
; Multi-line hotkey with commands
F1::
MsgBox, 4,, Do you want to open Calculator?
IfMsgBox Yes
Run, calc.exe
return
; Function definition
MyFunction(param1, param2) {
result := param1 + param2
return result
}
Hotkey Modifiers
; Modifier symbols:
; # = Windows key
; ^ = Control
; ! = Alt
; + = Shift
; & = Combine keys
; Examples
^j::Send, Hello World{!} ; Ctrl+J
!F4::WinClose, A ; Alt+F4 (close active window)
+^c::Send, ^c ; Shift+Ctrl+C
#Space::WinMinimize, A ; Win+Space
; Key combinations
F1 & F2::MsgBox, F1 and F2 pressed together
; Context-sensitive hotkeys
#IfWinActive, ahk_class Notepad
^s::
Send, ^s
Sleep, 100
SoundBeep, 750, 300
return
#IfWinActive
Text Replacement and Expansion
; Simple text replacements
::addr::123 Main Street, City, State 12345
::email::[email protected]
::sig::Best regards,{Enter}John Doe{Enter}Software Engineer
; Case-sensitive replacements
:C:HTML::HyperText Markup Language
; Raw text (no special character processing)
:R:pwd::MySecretPassword123!
; Multi-line text expansion
::signature::
(
Best regards,
John Doe
Senior Developer
Company Name
Email: [email protected]
Phone: (555) 123-4567
)
; Dynamic text replacement with functions
:*:time::
FormatTime, CurrentTime,, HH:mm:ss
SendRaw, %CurrentTime%
return
Window Management and Control
Window Operations
; Window manipulation hotkeys
#Up::WinMaximize, A ; Win+Up: Maximize active window
#Down::WinMinimize, A ; Win+Down: Minimize active window
#Left::WinRestore, A ; Win+Left: Restore active window
; Move and resize windows
F2::
WinGetPos, X, Y, Width, Height, A
NewX := X + 100
NewY := Y + 50
WinMove, A,, %NewX%, %NewY%
return
; Switch between windows
!Tab::AltTab ; Alt+Tab functionality
; Close all instances of a program
^!k::
WinGet, WindowList, List, ahk_exe notepad.exe
Loop, %WindowList%
{
WinClose, % "ahk_id " . WindowList%A_Index%
}
return
Application Launching and Control
; Launch applications with custom shortcuts
#n::Run, notepad.exe
#c::Run, calc.exe
#b::Run, chrome.exe
; Launch with parameters
#e::Run, explorer.exe "C:\Users\%A_UserName%\Documents"
; Launch and position window
F3::
Run, cmd.exe
WinWait, ahk_exe cmd.exe,, 3
if !ErrorLevel
{
WinMove, ahk_exe cmd.exe,, 100, 100, 800, 600
WinActivate, ahk_exe cmd.exe
}
return
; Run programs with different working directories
#p::
Run, powershell.exe, C:\Scripts
return
Advanced Automation
Mouse Automation
; Mouse click automation
F5::
Click, 100, 200 ; Click at coordinates (100, 200)
Sleep, 500
Click, 300, 400, 2 ; Double-click at (300, 400)
Sleep, 200
Click, Right ; Right-click at current position
return
; Mouse movement and dragging
F6::
MouseMove, 500, 300, 50 ; Move to (500, 300) at speed 50
Sleep, 100
Click, Down ; Press mouse button down
MouseMove, 600, 400, 30 ; Drag to new position
Click, Up ; Release mouse button
return
; Scroll wheel automation
^WheelUp::Send, {PgUp} ; Ctrl+Scroll up = Page up
^WheelDown::Send, {PgDn} ; Ctrl+Scroll down = Page down
Keyboard Automation
; Send text and key combinations
F7::
Send, Hello, this is automated text{!}
Sleep, 1000
Send, ^a ; Select all (Ctrl+A)
Sleep, 500
Send, ^c ; Copy (Ctrl+C)
Sleep, 500
Send, {Tab} ; Press Tab
Send, ^v ; Paste (Ctrl+V)
return
; Input simulation with timing
F8::
SetKeyDelay, 50 ; 50ms delay between keystrokes
Send, This text will be typed slowly
SetKeyDelay, -1 ; Reset to default
return
; Special key combinations
F9::
Send, {Win down}r{Win up} ; Win+R (Run dialog)
Sleep, 200
Send, cmd{Enter} ; Type "cmd" and press Enter
return
File and Folder Operations
; File management shortcuts
#o::
FileSelectFile, SelectedFile,, C:\, Select a file
if SelectedFile
Run, notepad.exe "%SelectedFile%"
return
; Folder operations
#f::
FileSelectFolder, SelectedFolder,, 3, Select a folder
if SelectedFolder
Run, explorer.exe "%SelectedFolder%"
return
; File copying and moving
CopyToBackup(SourcePath) {
BackupFolder := "C:\Backup"
FileCreateDir, %BackupFolder%
SplitPath, SourcePath, FileName
DestPath := BackupFolder . "\" . FileName
FileCopy, %SourcePath%, %DestPath%, 1
if ErrorLevel
MsgBox, Failed to copy file
else
MsgBox, File copied to backup
}
GUI Development
Simple GUI Applications
; Create a simple GUI window
Gui, Add, Text,, Enter your name:
Gui, Add, Edit, vUserName w200
Gui, Add, Button, gSubmitName, Submit
Gui, Add, Button, gCloseApp x+10, Cancel
Gui, Show,, Simple Input Dialog
return
SubmitName:
Gui, Submit
MsgBox, Hello, %UserName%!
ExitApp
CloseApp:
ExitApp
Advanced GUI with Controls
; Create a feature-rich GUI
Gui, New, +Resize, System Information Tool
Gui, Font, s12 Bold
Gui, Add, Text,, System Information
Gui, Font
; Add various controls
Gui, Add, Text,, Computer Name:
Gui, Add, Edit, vComputerName w300 ReadOnly
Gui, Add, Text,, Username:
Gui, Add, Edit, vUsername w300 ReadOnly
Gui, Add, Text,, OS Version:
Gui, Add, Edit, vOSVersion w300 ReadOnly
; Buttons
Gui, Add, Button, gRefreshInfo, Refresh
Gui, Add, Button, gSaveInfo x+10, Save to File
Gui, Add, Button, gCloseGUI x+10, Close
; Load initial data
Gosub, RefreshInfo
Gui, Show, w350 h250
return
RefreshInfo:
GuiControl,, ComputerName, %A_ComputerName%
GuiControl,, Username, %A_UserName%
GuiControl,, OSVersion, %A_OSVersion%
return
SaveInfo:
FileAppend, Computer: %A_ComputerName%`nUser: %A_UserName%`nOS: %A_OSVersion%`n, SystemInfo.txt
MsgBox, Information saved to SystemInfo.txt
return
CloseGUI:
GuiClose:
ExitApp
System Integration and Monitoring
System Information and Monitoring
; Monitor system resources
F10::
; Get CPU usage (requires additional implementation)
Process, Exist, explorer.exe
ExplorerPID := ErrorLevel
; Get memory usage
GlobalMemoryStatus(MemoryStatus)
MemoryUsage := Round(MemoryStatus.dwMemoryLoad)
; Display information
MsgBox, 0, System Info,
(
Explorer PID: %ExplorerPID%
Memory Usage: %MemoryUsage%%%
Computer: %A_ComputerName%
User: %A_UserName%
)
return
GlobalMemoryStatus(ByRef MemoryStatus) {
VarSetCapacity(MemoryStatus, 32, 0)
NumPut(32, MemoryStatus, 0, "UInt")
DllCall("Kernel32.dll\GlobalMemoryStatus", "Ptr", &MemoryStatus)
return NumGet(MemoryStatus, 4, "UInt")
}
Network and Web Automation
; Web automation example
#w::
; Open browser and navigate
Run, chrome.exe "https://www.google.com"
Sleep, 3000
; Send search query
Send, AutoHotkey automation
Send, {Enter}
return
; Download file function
DownloadFile(URL, DestPath) {
try {
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", URL, false)
WebRequest.Send()
FileDelete, %DestPath%
File := FileOpen(DestPath, "w")
File.RawWrite(WebRequest.ResponseBody, WebRequest.ResponseBody.MaxIndex() + 1)
File.Close()
return true
} catch e {
return false
}
}
Best Practices and Optimization
Error Handling and Debugging
; Error handling example
SafeFileOperation(FilePath) {
try {
FileRead, Content, %FilePath%
if ErrorLevel
throw Exception("Failed to read file", -1, FilePath)
return Content
} catch e {
MsgBox, 16, Error, % "Error: " . e.message . "`nFile: " . e.extra
return ""
}
}
; Debug output
#D::
DebugMsg := "Debug info: " . A_TickCount
OutputDebug, %DebugMsg%
ToolTip, %DebugMsg%
SetTimer, RemoveToolTip, 2000
return
RemoveToolTip:
ToolTip
SetTimer, RemoveToolTip, Off
return
Performance Optimization
; Optimize script performance
#NoEnv ; Recommended for performance
#SingleInstance Force ; Only one instance
#Persistent ; Keep script running
SetBatchLines, -1 ; Run at maximum speed
SetKeyDelay, -1 ; No delay between keystrokes
SetMouseDelay, -1 ; No delay between mouse events
SetWinDelay, -1 ; No delay between window commands
Common Use Cases
Productivity Enhancement
- Automated data entry and form filling
- Custom keyboard shortcuts for frequently used programs
- Text expansion for common phrases and signatures
- Window management and workspace organization
Gaming and Entertainment
- Custom key bindings for games
- Automated repetitive tasks in games
- Screenshot and recording automation
- Media player control shortcuts
System Administration
- Automated system maintenance tasks
- Log file monitoring and processing
- Batch file operations
- Network connectivity testing
Development Tools
- IDE customization and shortcuts
- Code snippet insertion
- Build process automation
- Testing and deployment scripts
Development Tools and Resources
IDEs and Editors
- SciTE4AutoHotkey: Official AutoHotkey editor
- Visual Studio Code: AutoHotkey extension available
- Notepad++: Syntax highlighting for AHK
- Sublime Text: AutoHotkey package available
Debugging and Testing
- Built-in debugging with
OutputDebug
- Variable inspection with
ListVars
- Performance monitoring with
KeyHistory
- Error logging and exception handling
Documentation and Community
- Official AutoHotkey documentation
- Community forums and Discord servers
- GitHub repositories with script examples
- YouTube tutorials and video guides
AutoHotkey continues to be an essential tool for Windows automation, offering powerful scripting capabilities that enhance productivity and provide extensive customization options for users and developers alike.
AI-Powered AUTOHOTKEY File Analysis
Instant Detection
Quickly identify AutoHotKey script files with high accuracy using Google's advanced Magika AI technology.
Security Analysis
Analyze file structure and metadata to ensure the file is legitimate and safe to use.
Detailed Information
Get comprehensive details about file type, MIME type, and other technical specifications.
Privacy First
All analysis happens in your browser - no files are uploaded to our servers.
Related File Types
Explore other file types in the Code category and discover more formats:
Start Analyzing AUTOHOTKEY Files Now
Use our free AI-powered tool to detect and analyze AutoHotKey script files instantly with Google's Magika technology.
⚡ Try File Detection Tool