SendMessage не работает с приложением Word

Я делаю небольшую заявку, и мне нужно щелкнуть мышью по позиции в текстовом документе.

Я использую «sendMessage», хотя я также использовал «postMessage», получая тот же результат.

#include <Windows.h>int _tmain(int argc, _TCHAR* argv[])
{
HWND win_handle = FindWindow(L"OpusApp", NULL);
if (win_handle != NULL)
{
POINT win_coords = {1310, 360};
POINT ctrl_coords = win_coords;

ScreenToClient(win_handle, &win_coords);
WCHAR windowsText1[200];
GetWindowText(win_handle, windowsText1, 200);
//SetCapture(win_handle);
LPARAM lParam = MAKELPARAM(win_coords.x, win_coords.y);
LRESULT hr_d = SendMessage(win_handle, WM_LBUTTONDOWN, 0, lParam);
LRESULT hr_u = SendMessage(win_handle, WM_LBUTTONUP, 0, lParam);
}
return 0;
}

Любое предложение?

С уважением.

0

Решение

Во-первых, вы не должны использовать SendMessage или PostMessage для отправки ввода. Это может работать для некоторых программ, но прямая отправка или публикация сообщения не обновляет внутреннее состояние, связанное с вводом, что может вызвать странные вещи, такие как не обнаружение ввода.

Вот почему функция SendInput существует. Это вводит данные на том же уровне, что и драйвер мыши, поэтому Windows будет правильно поддерживать свое состояние. Конечно, это для глобального вклада. Если нет способа гарантировать, что окно будет на переднем плане, вы можете посмотреть в UI Automation.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]