Useful AutoHotkey Scripts For Developers
In this blog post, you'll find a couple of useful AutoHotkey scripts to inspire, simplify and improve your daily tasks. It assumes you are already familiar with AutoHotkey. If not, then there are plenty of tutorials available on the internet, including an official one: AutoHotkey Beginner Tutorial.
Notice: AutoHotkey is only available for Windows OS.
Useful One-Liners
Let's start with easiest scripts that fit in one-line. My favourites in this list are "Hassle-free Re-mappings" because they allow to use a mouse and always have your left hand sit on top of AWSD keys. Other ones are also can be pretty useful when you have to navigate to a particular folder.
Open AppData/Roaming folder:
^#a::Run, %A_AppData%
Open AppData/Local folder:
^+#a::Run % StrReplace(A_AppData, "Roaming", "Local")
Open MyDocuments folder:
^#d::Run %A_MyDocuments%
Open Dropbox folder:
^+#d::Run, C:\Users\%A_UserName%\Dropbox
Hassle-free Re-mappings:
CapsLock & g::Send,{Enter}
CapsLock & f::Send,{Delete}
CapsLock & f::Send,{Backspace}
Tip: I recommend using it with this script:
Use Caps Lock for Hand-Friendly Text Navigation | LifeHacker
Toggle Slashes in the Clipboard
Script:
CapsLock & b::
replaceCount = 0
replacement := StrReplace(clipboard, "\", "/", replaceCount)
if replaceCount <= 0
{
replacement := StrReplace(clipboard, "/", "\", replaceCount)
}
if replaceCount > 0
{
clipboard := replacement
}
return
Example:
Copy this to clipboard:
C:\Program Files\AutoHotkey
Press "CapsLock + b". The content of the clipboard will be changed to:
C:/Program Files/AutoHotkey
Press the same hotkey again, and the content of the clipboard will be changed to:
C:\Program Files\AutoHotkey
Convert Windows Path to WSL Path And Wise Versa
Script:
CapsLock & w::
replaceCount = 0
wslPath := RegExReplace(clipboard, "^([a-zA-Z]):(.*)", "/mnt/$L1$2", replaceCount)
if replaceCount <= 0
{
winPath := RegExReplace(clipboard, "^\/mnt\/([a-zA-Z])(.*)", "$U1:$2", replaceCount)
if replaceCount >= 1
{
StringReplace, winPath, winPath, /, \, All
clipboard := winPath
}
}
else
{
StringReplace, wslPath, wslPath, \, /, All
clipboard := wslPath
}
return
Example 1:
Copy this to clipboard:
R:\Temp
Press CapsLock+w, this will change the content of the clipboard to:
/mnt/r/Temp
Example 2:
Copy this to clipboard:
/mnt/r/Temp
press CapsLock+w, this will be in the clipboard:
R:\Temp
Insert Date and Time (HS)
Script:
:*:]d::
FormatTime, CurrentDateTime,, dd.MM.yyyy HH:mm
SendInput %CurrentDateTime%
return
Example input:
]d
It will be replaced with:
28.01.2021 06:50
Insert UUID (GUID, HS)
Script:
:*:]uu::
newGuid := CreateUUID()
SendInput, %newGuid%
return
CreateUUID()
{
VarSetCapacity(UUID, 16, 0)
if (DllCall("rpcrt4.dll\UuidCreate", "ptr", &UUID) != 0)
return (ErrorLevel := 1) & 0
if (DllCall("rpcrt4.dll\UuidToString", "ptr", &UUID, "uint*", suuid) != 0)
return (ErrorLevel := 2) & 0
return StrGet(suuid), DllCall("rpcrt4.dll\RpcStringFree", "uint*", suuid)
}
Example input:
]uu
It will be replaced with:
1b1ae064-4d59-4a0a-b879-cdcbb0bc8c68
Notice, it's based on the following thread: GUID & UUID - AutoHotkey Community.
Wrap text from clipboard and paste (HS)
I use it to search a particular string in evernote intitle. But it might give you ideas for something more relevant. For example, you can wrap a piece of code, etc.
Script:
:*:]eint::
result := RegExReplace(clipboard, "(.*)", "intitle:""$1""",, 1)
SendInput %result%
return
Example:
Copy this to clipboard:
Blog Post
Enter the following string:
]eint
It will be replaced with:
intitle:"Blog Post"
Summary
This post doesn't pretend to be the most complete, but I hope it'll help you start with AutoHotkey a bit quicker. AutoHotkey gives you an easy way to add extra hotkeys to Windows OS, as well as useful "Hot Strings". And the best part - it's mature enough, that if you want to use it for something specific to you, most likely it's already available on the internet - you can find hundreds of scripts on GitHub, forums and blog posts. And if it's not, AutoHotkey has impressive documentation and a responsive user base eager to help.