Как отправить строку в другое приложение, включая Microsoft Word

Я пытался добиться этого, но не получил хороших результатов. Я использовал функции 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, но я не знаю, как это сделать.

Ответы на вопрос(2)

Ваш ответ на вопрос