I was wondering if there was some sort of way to return all the shortcuts from an AHK macro file?
I have an AHK file which is full of shortcuts and I am always adding to it.
They are either in the format of Alt + Something or plain text replacement (usually along the lines of ASTERISK + email = replaced with "[email protected]")
I was trying to think of ways to do this and thought of 2 options:
1: (a long shot) A way to read all the shortcut keys (maybe built in) and return them in msgbox, or in a variable for use elsewhere
2: (more likely) Apply a particular comment text (maybe duplicate semi colons) above each shortcut that can be looped through and read
EG:
;;Alt + P = Send printer path
send, \\printerpathexample\example\example1printer
return
Are either of these options possible? Maybe by using FILEREADLINE and some sort of loop?
Reading All Short Keys in File
Re: Reading All Short Keys in File
You can double-click the AutoHotkey tray icon, and then after the window opens press Ctrl + H or just click menu View > Hotkeys and their methods.
Also, courtesy of Lexikos:
https://autohotkey.com/boards/viewtopic.php?f=6&t=9656
Also, courtesy of Lexikos:
https://autohotkey.com/boards/viewtopic.php?f=6&t=9656
Code: Select all
#SingleInstance, Force
#InstallKeybdHook
MsgBox, % ScriptInfo("ListHotkeys")
!p::Send, \\printerpathexample\example\example1printer
F1 & F2::MsgBox, Test
ScriptInfo(Command)
{
static hEdit := 0, pfn, bkp
if !hEdit {
hEdit := DllCall("GetWindow", "ptr", A_ScriptHwnd, "uint", 5, "ptr")
user32 := DllCall("GetModuleHandle", "str", "user32.dll", "ptr")
pfn := [], bkp := []
for i, fn in ["SetForegroundWindow", "ShowWindow"] {
pfn[i] := DllCall("GetProcAddress", "ptr", user32, "astr", fn, "ptr")
DllCall("VirtualProtect", "ptr", pfn[i], "ptr", 8, "uint", 0x40, "uint*", 0)
bkp[i] := NumGet(pfn[i], 0, "int64")
}
}
if (A_PtrSize=8) { ; Disable SetForegroundWindow and ShowWindow.
NumPut(0x0000C300000001B8, pfn[1], 0, "int64") ; return TRUE
NumPut(0x0000C300000001B8, pfn[2], 0, "int64") ; return TRUE
} else {
NumPut(0x0004C200000001B8, pfn[1], 0, "int64") ; return TRUE
NumPut(0x0008C200000001B8, pfn[2], 0, "int64") ; return TRUE
}
static cmds := {ListLines:65406, ListVars:65407, ListHotkeys:65408, KeyHistory:65409}
cmds[Command] ? DllCall("SendMessage", "ptr", A_ScriptHwnd, "uint", 0x111, "ptr", cmds[Command], "ptr", 0) : 0
NumPut(bkp[1], pfn[1], 0, "int64") ; Enable SetForegroundWindow.
NumPut(bkp[2], pfn[2], 0, "int64") ; Enable ShowWindow.
ControlGetText, text,, ahk_id %hEdit%
return text
}
Who is online
Users browsing this forum: Google [Bot] and 247 guests