InputLanguage и автоматический ввод текста - C#
Формулировка задачи:
Здравствуйте! Кто сталкивался с подобным, или знает как решить проблему, помогите пожалуйста
Такая штука, когда по нажатию на кнопку, меняется язык, работает.
А вот в коде :
смена раскладки клавиатуры не работает...
Для понимания происходящего :
1) sts - массив строк всего richTexBoxa, currentst - номер строки, на которой мы "остановились", ii - номер символа, на котором мы "остановились" в строки с номером <currentst>, dtext - словарь(ключ - строка(символ), значение - byte-код клавиш)
2) Пишу программу, которая вводит текст(надо именно ввод с клавиатуры, а не ctrl+v текста из rixhtexbox`a) на клавиатуре, взятого из richtexbox`a. Хочу, чтоб все было автоматически, то есть ввел текст в ruchtexbox : "Привет, world". Чтоб программа и ввела "Привет, world", а не "Ghbdtn, world" и т.п.
Сейчас же вводит как раз таки "Ghbdtn, world"...
Кто знает, как можно решить эту проблему? Или кто подробно знает, как работает InputLanguage, смена языка раскладки?
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); }
Решение задачи: «InputLanguage и автоматический ввод текста»
textual
Листинг программы
SendKeys.SendWait(string.Join(Environment.NewLine,sts));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д