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

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

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

Здравствуйте! Кто сталкивался с подобным, или знает как решить проблему, помогите пожалуйста Такая штука, когда по нажатию на кнопку, меняется язык, работает.
Листинг программы
  1. private void buttonHelp_Click(object sender, EventArgs e)
  2. {
  3. if (InputLanguage.CurrentInputLanguage.Culture.Name == "ru-RU")
  4. {
  5. InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
  6. }
  7. else if (InputLanguage.CurrentInputLanguage.Culture.Name == "en-US")
  8. {
  9. InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ru-RU"));
  10. }
  11. }
А вот в коде :
Листинг программы
  1. if ((((int)sts[currentst][ii] >= 1072) && ((int)sts[currentst][ii] <= 1103)) || ((int)sts[currentst][ii] == 1105)) // если буква - русс
  2. {
  3. InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ru-RU"));
  4. keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY, 0);
  5. keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
  6. }
  7. else
  8. {
  9. InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
  10. keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY, 0);
  11. keybd_event(dtext[sts[currentst][ii].ToString()], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
  12. }
смена раскладки клавиатуры не работает... Для понимания происходящего : 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
Листинг программы
  1. SendKeys.SendWait(string.Join(Environment.NewLine,sts));

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


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

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

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы