@Lynatik001

Почему неправильно работает SendMessage?

кликает лишь когда мышь в границе окна и то не по координатам - а в ту точку где сейчас мышь находится - специально поставил 0 0 коорды что б проверить ли кликнет в левый верхний угол - кликает туда просто где мышь ща находится*(

Mouse.MouseClick(hwnd, (IntPtr)0, (IntPtr)0);

public static void MouseClick(IntPtr hwnd, IntPtr x, IntPtr y)
        {
            SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONDOWN, x, y);
            Thread.Sleep(1000);
            SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONUP, x, y);
        }
        public static void MouseClick(IntPtr hwnd, IntPtr x, IntPtr y, int timeP)
        {
            SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONDOWN, x, y);
            Thread.Sleep(timeP);
            SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONUP, x, y);
        }
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 2
У вас WPARAM и LPARAM указаны неверно. LPARAM содержит координаты в старшем и младшем слове.
https://docs.microsoft.com/ru-ru/windows/win32/inp...
Ответ написан
Комментировать
@Sumor
Координаты пакуются в последний параметр:
SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONDOWN, 0, (x & 0xffff)|(y << 16) );
Thread.Sleep(1000);
SendMessage(hwnd, (int)WindowMessages.WM_LBUTTONDOWN, 0, (x & 0xffff)|(y << 16) );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы