Необходимо написать метод, принимающий строку в виде любого текста, который в результате должен написать этот текст в любое поле ввода имитируя ввод с клавиатуры.
Недавно я уже задавал похожий вопрос, но там речь была о нажатии конкретных клавиш клавиатуры, коды для которых уже имеются в виде enum. Здесь же речь идет вообще о любых символах - то есть должен имитироваться ввод подобного текста: "³⁸⁽⋜" и т.п.
Что я пробовал:
System.Windows.Forms.SendKeys.SendWait("³⁸⁽⋜");
Это работает только для полей ввода в приложении, т.к. Keyboard фокусируется только на ни х. (Решение взял отсюда)
var text = "³⁸⁽⋜";
var target = Keyboard.FocusedElement;
var routedEvent = TextCompositionManager.TextInputEvent;
target.RaiseEvent(
new TextCompositionEventArgs(
InputManager.Current.PrimaryKeyboardDevice,
new TextComposition(InputManager.Current, target, text))
{ RoutedEvent = routedEvent }
);
Ctrl+V. – aepot May 16 '22 at 09:58pythonесть библиотекаkeyboard, у которой есть методwrite(), принимающий и пишущий любой текст. Вот,936 строка: https://github.com/boppreh/keyboard/blob/master/keyboard/init.py – denisnumb May 16 '22 at 10:01SendInput. В вашем случае эту строку надо просто отправить посимвольно, с флагом KEYEVENTF_UNICODE – aepot May 16 '22 at 10:05SendInputмне в свое время не подошел. Мне нужно было в визуальный редактор HTML вставлять фрагменты верстки именно как HTML, а на такое способен оказался только буфер обмена. Поэтому для просто текстовых полей такиSendInputвполне подходит. – aepot May 16 '22 at 10:26