У меня есть приложение для Windows, которое я хочу перенести на Linux. В этом приложении я отправляю события щелчка мышью в другие приложения. Функция, которая выполняет эту работу, выглядит следующим образом:
void MainWindow::send_mouse_event(HWND hwnd, int x, int y)
{
int coordinate = x | (y << 16);
LRESULT res = SendMessage(hwnd, WM_LBUTTONDOWN, 0x00000001, coordinate);
SendMessage(hwnd, WM_LBUTTONUP, 0x00000000, coordinate);
}
Я искал эквивалентный код в Linux, и я нашел xdotool. Насколько я понял, используя xdotool
, вы должны сначала навести курсор мыши на точку, а затем щелкнуть эту точку. Но в Windows я мог отправлять события щелчка мышью практически в другие окна, не перемещая мышь. Так правдива ли история о Linux? Можно ли отправить событие щелчка другим приложениям без (действительно) перемещения мыши в Linux? Я использую Ubuntu 18.04.
Задача ещё не решена.
Других решений пока нет …