Is is possible to create hotstrings with the abbreviations and expanded value stored in variables? I need to store hotstrings in an ini file and retrieve/enable them from the ini file. I would need a command similar to the "Hotkey" command as illustrated in the example below. Without such a "Hotstring" command, is there another way to obtain the same result?
This is a working example. It will create an ini file named with with the script's filenname.
Code: Select all
#NoEnv #SingleInstance force #KeyHistory 0 objHotkeyCommands := Object() StringReplace, strIniFilename, A_ScriptFullPath, .ahk, .ini IniWrite, !q, %strIniFilename%, Global, Hotkey IniWrite, DoThis, %strIniFilename%, Global, HotkeyCommand IniWrite, qq, %strIniFilename%, Global, Hotstring IniWrite, Some text, %strIniFilename%, Global, HotstringText ; at some other point in the script IniRead, strHotkey, %strIniFilename%, Global, Hotkey IniRead, strHotkeyCommand, %strIniFilename%, Global, HotkeyCommand objHotkeyCommands.Insert(strHotkey, strHotkeyCommand) IniRead, strHotstring, %strIniFilename%, Global, Hotstring IniRead, strHotstringText, %strIniFilename%, Global, HotstringText Hotkey, %strHotkey%, DoHotkey ; I know the "Hotstring" command below does not exit. ; But, if it would, it would do quite the same as the "Hotkey" command. ; Is there a way to obtain the same result? ; Hotstring, %strHotstring%, %strHotstringText% ; Here are a few alternatives that I put here for test ::ww::Some text ; this work ::%strHotstring%::%strHotstringText% ; "qq" does not work at all return DoHotkey: gosub, % objHotkeyCommands[A_ThisHotkey] return DoThis: MsgBox, strHotkey "%A_ThisHotkey%" executed return
I've also reviewed this solution but it seems quite invasive (it triggers every key of your keyboard).
EDIT (2018-02-11): This is now possible with v1.1.28+. See the Hotstring function and this demo.