سلام به همه دوستان،
میخواستم بدونم کد تبدیل زبان کیبورد از انگلیسی به فارسی چیه؟
لطفا راهنماییم کنید.
متشکرم
سلام به همه دوستان،
میخواستم بدونم کد تبدیل زبان کیبورد از انگلیسی به فارسی چیه؟
لطفا راهنماییم کنید.
متشکرم
با سلام.
ابتدا کلاس زیر را به برنامه بیافزایید:
publicclasswin32
{
[DllImport("user32.dll", SetLastError = true)]
publicstaticexternint LoadKeyboardLayoutA(String pwszKLID, int Flags);
}
حال برای فارسی کردن صفحه کلید از کد زیر استفاده کنید:
System.PlatformID platform = Environment.OSVersion.Platform;
System.String windowstype = platform.ToString();
if (windowstype == "Win32NT")
win32.LoadKeyboardLayoutA("00000429", 1);
if (windowstype == "Win32Windows" || windowstype == "Win32S")
win32.LoadKeyboardLayoutA("00000401", 1);
و برای انگلیسی کردن زبان صفحه کلید از کد زیر استفاده کنید:
win32.LoadKeyboardLayoutA("00000409", 1);
در ضمن برای فراخوانی فایل هایی dll در برنامه فراموش نکنید فضای نام System.Runtime.InteropServicesرا به برنامه بیافزایید.
موفق باشید.
آخرین ویرایش به وسیله وحید پیرمرادیان : سه شنبه 05 خرداد 1388 در 13:59 عصر
کلا سعی کن تو .Net کمتر از API ها استفاده کنی چرا که باعث ایجاد حفره در برنامه میشه .
private void ChangeInputLanguage(string cultureName)
{
InputLanguage lang = (from i in InputLanguage.InstalledInputLanguages.Cast<InputLa nguage>()
where i.Culture.Name == cultureName
select i).SingleOrDefault();
if (lang != null) InputLanguage.CurrentInputLanguage = lang;
}
//Use
ChangeInputLanguage("en-US");
ChangeInputLanguage("fa-IR");
هر دو روش رو امتحان کردم اما با خطاهای زیر روبرو شدم:
اولی:
Error 1: The type or namespace name 'DllImport' could not be found (are you missing a using directive or an assembly reference?)
مشکل از چیه؟
دومی:
Error 1: ) expected : in "i" point
Error 2: ; expected : in "in" point
Error 3: Invalid expression term 'in' : in "in" point
Error 4: ; expected : in "InputLanguage" point
Error 5: ; expected : in "where" point
Error 6: ; expected : in "i." point
Error 7: Invalid expression term '.' : in "i." point
Error 8: ; expected : in "Culture" point
Error 9: ; expected : in "select" point
Error 10: ; expected : in ")" point
Error 11: Invalid expression term ')' : in ")" point
مشکل این چیه؟
واقعا به این کد احتیاج دارم. ممنون می شم کمکم کنید.
سلام دوست عزيز فكر كنم اگه سرچ ميكردي كلي كد توي سايت پيدا مي كردي
اما در هر صورت من هميشه تو برنامه هام از اين كد استفاده مي كنم
دو تا تابع هستش كه با فراخواني هركدوم كيبوردت همون زبان ميشه
publicstaticvoid Englishkey()
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("en-US"));
}
publicstaticvoid Farsikey()
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("fa-IR"));
}
موفق باشيد
[quote=R.nosratabadi;729506]هر دو روش رو امتحان کردم اما با خطاهای زیر روبرو شدم:
اولی:
Error 1: The type or namespace name 'DllImport' could not be found (are you missing a using directive or an assembly reference?)
مشکل از چیه؟
دوست عزیز این خطا از آنجاست که شما فضای نام
using System.Runtime.InteropServices را به برنامه خود اضافه نکرده اید. این فضای نام برای استفاده فایل های dll در برنامه است.
موفق باشید.
InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
بر اساس نياز index داخل گيومه را تغيير دهيد.
موفق باشيد.
سلام دوست عزيز خيلي آسونه :
using System.Globalization;
CultureInfo farsi = new CultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(farsi);
اين كدو تو loadform بزار هرجاي فرم تايپ كني فاري ميشه
تاپیک قدیمیه ولی گفتم این روش رو هم بگم شاید بدرد کسی بخوره:
using System.Threading;
using System.Globalization;
public void farsi() {
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fa-IR");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("fa-IR"));
}
public void English()
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
}
بعد می تونی مثلا در رویداد Enter یه تکست باکس هر کدوم رو خواستی صدا بزنی .
آخرین ویرایش به وسیله ayat2006 : چهارشنبه 27 فروردین 1393 در 19:08 عصر
ممنون از جواب
بهتر نیست به جای کلمه تایپیک از واژه صحیح آن که تاپیک هست استفاده کنیم دوست عزیز؟
topic= مبحث, عنوان
باعرض پوزش