Я пытался добиться этого, но не получил хороших результатов.Я использовал функции GetForegroundWindow (), AttachThreadInput (uint, uint, bool) и GetFocus () для отправки строк в другое окно.Он работает с Блокнотом, Wordpad и другими приложениями, но не с Microsoft Word.
int foregroundWindowHandle = GetForegroundWindow();
uint remoteThreadId = GetWindowThreadProcessId(foregroundWindowHandle, 0);
uint currentThreadId = GetCurrentThreadId();
bool b = AttachThreadInput(remoteThreadId, currentThreadId, true);
int focused = GetFocus();
int d = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
b = AttachThreadInput(remoteThreadId, currentThreadId, false);
SendMessage(focused , WM_GETTEXT, builder.Capacity, builder);
clip = builder.ToString();
//Text operations...
SendMessage(focused, WM_SETTEXT, 0, builder);
Это код, который у меня есть, но он не работает с Word.Я знаю, что Word использует пользовательские элементы управления, но я думаю, что должен быть другой способ справиться с этим.
Например: распознавание речи Windows отправляет текст в каждое приложение, которое имеет фокус, даже если это Word.Я не думаю, что они делали ввод вручную.
Я думал использовать функцию SendInputs, но я не знаю, как это сделать.