Latest post of the previous page:
У меня при любой из 2х раскладок выдаёт
0x04090409
.Update
После перезапуска фара заработало.
Latest post of the previous page:
У меня при любой из 2х раскладок выдаёт
0x04090409
.Code: Select all
local ffi = require("ffi")
ffi.cdef[[
HWND GetConsoleWindow(void);
HWND ImmGetDefaultIMEWnd(HWND unnamedParam1);
DWORD GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId);
DWORD GetKeyboardLayout(DWORD threadId);
]]
local C = ffi.C
local imm32 = ffi.load("Imm32.dll")
local hwnd = C.GetConsoleWindow()
local IMEWnd = imm32.ImmGetDefaultIMEWnd(hwnd)
local threadID = C.GetWindowThreadProcessId(IMEWnd, nil)
local inputLocaleID = C.GetKeyboardLayout(threadID)
far.Show(("%x"):format(inputLocaleID))
Code: Select all
GetInputLangID(hWnd := '')
{
Try
{
(!hWnd) && hWnd := WinActive('A'), childPID := ''
If WinGetProcessName(hWnd) = 'ApplicationFrameHost.exe'
{
pid := WinGetPID(hWnd)
For ctl in WinGetControls(hWnd)
DllCall('GetWindowThreadProcessId', 'Ptr', ctl, 'UIntP', childPID)
Until childPID != pid
DetectHiddenWindows True
hWnd := WinExist('ahk_pid' childPID)
}
threadId := DllCall('GetWindowThreadProcessId', 'Ptr', hWnd, 'UInt', 0)
lyt := DllCall('GetKeyboardLayout', 'Ptr', threadId, 'UInt')
Return langID := Format('{:#x}', lyt & 0x3FFF)
}
}
F12::
{
CurLang := GetInputLangID()
MsgBox CurLang
}
Вообще не работал до 6286
Code: Select all
drkns 2024-03-14 18:58:33+00:00 - build 6286
1. Get keyboard layout from IMM.
У меня тоже. Чтобы работало и под wt нужно ещё https://github.com/FarGroup/FarManager/ ... 36c7c2cc92