PDA

View Full Version : مبتدی: زبان جاری سیستم



Collector
جمعه 26 اسفند 1390, 14:54 عصر
سلام
من با این کد میخاوم زبان جاری سیستم را بدست بیارم. اما زبان جاری در برنامه را نشان میده.

InputLanguage.CurrentInputLanguage.Culture.Name.To String()

Sirwan Afifi
جمعه 26 اسفند 1390, 15:14 عصر
دوست عزیز همین کد رو توی یک Timer بنویسید :

label1.Text = InputLanguage.CurrentInputLanguage.Culture.Name;

هر وقت زبان سیستم رو تغییر دادید توی Label نمایش داده میشه.

Collector
جمعه 26 اسفند 1390, 15:25 عصر
دوست عزیز همین کد رو توی یک Timer بنویسید :

label1.Text = InputLanguage.CurrentInputLanguage.Culture.Name;

هر وقت زبان سیستم رو تغییر دادید توی Label نمایش داده میشه.


این کد فقط وقتی کار میکنه که فوکوس روی همان فرم باشه نه جای دیگه

Sirwan Afifi
جمعه 26 اسفند 1390, 15:48 عصر
به اینجا (http://stackoverflow.com/questions/6155317/input-language-hooking)یه سر بزن ببین مشکلت حل میشه؟

Collector
جمعه 26 اسفند 1390, 16:41 عصر
به اینجا (http://stackoverflow.com/questions/6155317/input-language-hooking)یه سر بزن ببین مشکلت حل میشه؟

ممنون ولی مشکل را حل نکرد.

اگر دقت کنید InputLanguage جزو کلاس System.Windows.Forms است پس نمیتواند برای کل سیستم را نشان دهد.

Collector
جمعه 26 اسفند 1390, 17:49 عصر
من از تابع GetKeyboardLayoutName هم استفاده کردم ولی هنوز زبان فرم جاری را نشان میدهد.


[DllImport("user32.dll")]
private static extern long GetKeyboardLayoutName(StringBuilder pwszKLID);

const int KL_NAMELENGTH = 9; // length of the keyboard buffer

public static string get_Name()
{
StringBuilder name = new StringBuilder(KL_NAMELENGTH);
GetKeyboardLayoutName(name);
return name.ToString();
}