با سلام
من برای تغییر زبان کیبورد به فارسی در ابتدای اجرای برنامه از یک کد استفاده کردم که نه تنها زبان سیستم را عوض نکرد
تنظیمات کیبورد را به شکلی تغییر داد که در کمبو باکس ها و تکست باکس هایی که رویداد KeyDown آنها نوشته شده کاراکتر ورودی از کیبورد
دریافت نمیکنند .
کدی که استفاده کردم این بود (البته بعدا از برنامه حذف شده ولی تاثیر خود رو همچنان دارد )
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref uint pvParam, uint fWinIni);
public void Foo()
{
uint localeUS = 0x00000409;
uint localeNL = 0x00000403;
SetSystemDefaultInputLanguage(localeUS);
}
public bool SetSystemDefaultInputLanguage(uint locale)
{
return SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, ref locale, 0);
}
public uint GetSystemDefaultInputLanguage()
{
uint result = uint.MinValue;
bool retVal = SystemParametersInfo(SPI_GETDEFAULTINPUTLANG, 0, ref result, 0);
return result;
}
خب این بحس خارج از برنامه سی شارپه:)
شما باید کار با ریجستری رو یاد داشته باشید
اگه میخاید توضیح بدم کافیه بگید آرهD:
اگه نه که بایستی پروژه رو تعطیل کنید):
ولی به نظرم توضیحش بدم بهترهD:
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)