InputLanguage и автоматический ввод текста - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Кто сталкивался с подобным, или знает как решить проблему, помогите пожалуйста Такая штука, когда по нажатию на кнопку, меняется язык, работает.
private void buttonHelp_Click(object sender, EventArgs e)
{
   if (InputLanguage.CurrentInputLanguage.Culture.Name == "ru-RU")
   {
      InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
   }
   else if (InputLanguage.CurrentInputLanguage.Culture.Name == "en-US")
   {
      InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ru-RU"));
   }
}
А вот в коде :
if ((((int)sts[currentst][ii] >= 1072) && ((int)sts[currentst][ii] <= 1103)) || ((int)sts[currentst][ii] == 1105)) // если буква - русс
{
   InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ru-RU"));
   keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY, 0);
   keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
else
{
   InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
   keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY, 0);
   keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}
смена раскладки клавиатуры не работает... Для понимания происходящего : 1) sts - массив строк всего richTexBoxa, currentst - номер строки, на которой мы "остановились", ii - номер символа, на котором мы "остановились" в строки с номером <currentst>, dtext - словарь(ключ - строка(символ), значение - byte-код клавиш) 2) Пишу программу, которая вводит текст(надо именно ввод с клавиатуры, а не ctrl+v текста из rixhtexbox`a) на клавиатуре, взятого из richtexbox`a. Хочу, чтоб все было автоматически, то есть ввел текст в ruchtexbox : "Привет, world". Чтоб программа и ввела "Привет, world", а не "Ghbdtn, world" и т.п. Сейчас же вводит как раз таки "Ghbdtn, world"... Кто знает, как можно решить эту проблему? Или кто подробно знает, как работает InputLanguage, смена языка раскладки?

Решение задачи: «InputLanguage и автоматический ввод текста»

textual
Листинг программы
SendKeys.SendWait(string.Join(Environment.NewLine,sts));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы