ايران ويج

نسخه‌ی کامل: بدست آوردن زبان نوشتار(input language) پنجره فعال ویندوز
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان گرامی , چطور میشه فهمید پنجره فعال در لحظه چه زبانی برای نوشتن رو فعال داره؟ فرض کنید با کدی تونستیم عنوان و هندل پنجره رویین(فعال) ویندوز که کاربر داره باهاش کار میکنه رو پیداکنیم . حالا چطور میشه فهمید چه زبانی روی این پنجره فعال هستش؟؟؟ منظور زبان نوشتن کیبوردش هست. ( how to get active window language)

اگه به خواهم به طور راحت تر بگم: برای مثال شما دارید توی یاهو فارسی تایپ می کنید، بعد روی پنجره دیگه برای مثال ورد صفحه کلید تغییر می دهید انگلیسی تایپ می کنید، حالا من می خواهم اینو بفهمم که زبان حالا حاضر که کاربر داره باهش تایپ می کنه چیست؟؟؟؟؟؟؟؟؟

با تشکر فراوان.
کار سختی نیست!

کد:
function GetActiveLang():Pchar;
var
  Layout: HKL;
  Lang: array [0..255] of Char;
begin
  Layout := GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow));
  GetLocaleInfo(LoWord(Layout), LOCALE_SLANGUAGE, Lang, SizeOf(Lang));
  Result:=Lang;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=   GetActiveLang;
end;