مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mahnaz_d

عضویت از 1396/09/22

اشکال در عدم دریافت کاراکتر از کیبورد

  • پنجشنبه 9 تیر 1401
  • 11:25
تشکر میکنم

با سلام

من برای تغییر زبان کیبورد به فارسی در ابتدای اجرای برنامه از یک کد استفاده  کردم که نه تنها زبان سیستم را عوض نکرد 

تنظیمات کیبورد را به شکلی تغییر داد که در کمبو باکس ها و تکست باکس هایی که رویداد 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;
    }

 

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

رضا نصیری

عضویت از 1392/10/01

  • یکشنبه 19 تیر 1401
  • 17:50
کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 11:18

خب این بحس خارج از برنامه سی شارپه:)

شما باید کار با ریجستری رو یاد داشته باشید 

اگه میخاید توضیح بدم کافیه بگید آرهD:

اگه نه که بایستی پروژه رو تعطیل کنید):

ولی به نظرم توضیحش بدم بهترهD:

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)