PDA

View Full Version : تشخیص زبان سیستم



حسین علوی
جمعه 23 اسفند 1392, 00:39 صبح
سلام خدمت اساتید بزرگوار
با کد زیر من زبان جاری سیستم رو مشخص میکنم ولی اگر فوکوس رو برنامه ای دیگه(مثلا نوت پد) باشه کار نمیکنه چرا؟
لطفا راهنمایی بفرمایید

Const KL_NAMELENGTH = 9
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Public Buffer As String

Private Sub Timer1_Timer()
Buffer = String(KL_NAMELENGTH, 10)
GetKeyboardLayoutName Buffer

Text1.Text = Buffer
End Sub

m.4.r.m
جمعه 23 اسفند 1392, 10:28 صبح
برای اینکار باید از توابع API مربوط به تشخیص پنجره فعال استفاده کنی سپس زبان کیبورد رو لود کنی

حسین علوی
جمعه 23 اسفند 1392, 14:39 عصر
لطفا یک نمونه بزارین.

meys34
جمعه 23 اسفند 1392, 18:50 عصر
برای اینکار باید از توابع API مربوط به تشخیص پنجره فعال استفاده کنی سپس زبان کیبورد رو لود کنی

متاسفانه اینطوری نمیشه...
چون تنها راه فهمیدن کیبورد تابع GetKeyboardLayoutName هست
و خروجی این تابع مربوط به پروسسی است که تابع رو فراخوانی کرده نه پنجره فعال...

تنها و تنها راهش تزریق کد روی برنامه مورد نظر هست (مثلا نوت پد) که با وی بی یه مقدار سخت میشه... ولی در این حالت چون کد های شما داره روی مثلا نوت پد اجرا میشه خروجی تابع دیگه درست کار میکنه...

لطفا از من درخواست کد نکنید چون راستشو بخواهید خودم هم بلد نیستم... ولی راه حلش همینه...

حسین علوی
شنبه 24 اسفند 1392, 21:45 عصر
دوستان نظر دیگه ای برای این موضوع ندارن؟