Hvordan får jeg ime sprog info? (Windows, C ++)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal have den aktuelle valgte IME-sprogindstilling i Windows.


Jeg har fundet ImmGetConversionStatus (), men den returnerer ikke det valgte sprog.

Bedste reference


Selv om dette spørgsmål blev spurgt for længe siden .. Jeg tror, ​​du måske har løst det selv. :)


Prøvede du :
Hvis i Windows 7: GetUserDefaultLocaleName Funktion
Syntaks:


int GetUserDefaultLocaleName(
  \_\_out  LPWSTR lpLocaleName,
  \_\_in   int cchLocaleName
);


lpLocaleName har den nuværende kultur.


Tjek docs: http://msdn.microsoft.com/en-us/library/dd318136\%28VS.85\%29.aspx[3]


Bare FYI,
tjek disse også:
http://msdn.microsoft.com/en-us/library/dd318135\%28VS.85\%29.aspx
og også 'support.microsoft.com/kb/193080'[4]

Andre referencer 1


Baseret på dette:


https://stackoverflow.com/a/12954320/964053


... du skal gøre sth som dette:


HWND fore = GetForegroundWindow(); // Every window has it's own current language (keyboard layout)
DWORD tpid = GetWindowThreadProcessId(fore, 0);
HKL hKL = GetKeyboardLayout(tpid);
WORD wd;
ToAsciiEx(VirtualKey, ScanCode, KeyState, (LPWORD)&wd, 0, hKL);