Избавьтесь от StrGet
и все будет работать нормально. StrGet
принимает параметр адреса:
Адрес, по которому строка будет записана / прочитана.
Но LocaleID
не является адресом.
Кроме того, вы можете использовать это, чтобы получить LocaleID
клавиатуры:
F7::
SetFormat, Integer, H
WinGet, WinID,, A
ThreadID:=DllCall("GetWindowThreadProcessId", "UInt", WinID, "UInt", 0)
LocaleID:=DllCall("GetKeyboardLayout", "UInt", ThreadID, "UInt")
MsgBox, %LocaleID%
clipboard := LocaleID
Return
Список идентификаторов клавиатуры (возможно, будет полезно):
https://msdn.microsoft.com/en-us/ie/dn938363(v=vs.94)