Здравствуйте, Carc, Вы писали:
C>чего то мне не нравится выше флаги
C>C>If MOUSEEVENTF_ABSOLUTE value is specified, dx and dy contain normalized absolute coordinates between 0 and 65,535. The event procedure maps these coordinates onto the display surface. Coordinate (0,0) maps onto the upper-left corner of the display surface; coordinate (65535,65535) maps onto the lower-right corner. In a multimonitor system, the coordinates map to the primary monitor.
Ну да. Если неабсолютные координаты, тогда надо привязываться к предыдущей позиции мыши. Зачем это надо.
C>Чего та вычисления неясные?
Там я перевожу координаты клика внутри того скрытого окна (pt.x, pt.y) в координаты клика внутри рабочего стола (input.mi.dx, input.mi.dy). Те, что внутри окна — вот они:
const int nSizeX = rcClip.right - rcClip.left;
const int nSizeY = rcClip.bottom - rcClip.top;
// Calculate the click coordinates for the target window.
pt.x = Round(((double) relative_point->x / m_wGaugeWidth) * nSizeX) + rcClip.left;
pt.y = Round(((double) relative_point->y / m_wGaugeHeight) * nSizeY) + rcClip.top;
C>// А вот тут что не нужно что ли координаты указывать?
C>C>.…
C>> ZeroMemory(&input,sizeof(INPUT)); //clear out input
C>> input.type = INPUT_MOUSE;
C>> input.mi.dwFlags = MOUSEEVENTF_LEFTUP; // mouse button up
C>> SendInput(1,&input,sizeof(INPUT));
C>>}
C>>
Вероятно, по крайней мере необязательно. По крайней мере этот код с тремя этими SendInput() работает нормально, когда окно видимо.
C>>Не судьба, видимо, с IE подружиться.
C>Думаю, надо прощее быть…
C>Выносить функцию сенд-инпученья в отдельный модуль, и гонять ее тестами и смотреть что к чему.
C>Сдается мне всё должно работать, только нужно четко и аккуратно с параметрами и ремарками из МСДЫНъ.
C>А то там вон много чего про флаги в MSDN сказано, что координаты могут относиться только к основному монитору и все такое.
C>Плюс. Ну безусловно, коды возврата WinAPI функций надо проверять, в нашем случае SendInput. Ну заобязательно просто. Они много чего могут сказать, может что-то просто не отрабатывает и все тут.
Спасибо! Эти советы буду иметь в виду, но пока я смещаюсь в сторону Sciter. Слишком много времени потратил, и с учётом того, что при таком подходе "может запросто фильтровать такой искуственный ввод", и так далее.