LINUX.ORG.RU

Двинуть мышь из QT

 ,


0

1

Нужно сделать левый клик, затем двинуть мышь и сделать ещё один левый клик. Можно сделать это через xdotool, но как-то это слишком громоздко - для каждого движения стартовать новый QProcess c xdotool.

Можно ли как-то сделать это с одним процессом xdotool, не закрывая процесс после каждой команды и не открывая вновь? Просто держать его в готовности, чтобы можно было передавать ему команды через QProcess::write() ? Т.е. что-то наподобие «mplayer -slave»

Или есть другой способ двинуть/нажать мышь из QT?

★★★★
Ответ на: комментарий от Silerus

Это работает в пределах Qt app, я же хочу по всему экрану кликать. Например в браузере

Chord ★★★★
() автор топика
Ответ на: комментарий от E

да я видел это.

И видел, что есть опция «xdotool -» которая должная как бы читать команды из stdin, но почему-то не хочет работать.

а script каждый раз писать в файл как-то не очень. Или есть способ с передачей в xdtool скрипта, который находится в памяти, без создания физического файла.

Или может tmpfs соорудить :) И там этот скрипт писать...

Chord ★★★★
() автор топика
Ответ на: комментарий от Chord

Или есть способ с передачей в xdtool скрипта, который находится в памяти, без создания физического файла.

Должно работать через простой popen. Что и почему у тебя не работает, трудно сказать, не видя реального кода, но это в любом случае лучше, чем городить tmpfs.

Если получится завести с помощью средств Qt, то лучше забей. Вызов внешней утилиты, даже один, будет избыточнее и тормознее.

E ★★★
()
Ответ на: комментарий от Chord

так есть xlib для этого, а вот с вяленным без понятия как сделать

Silerus ★★★★
()

QuickTime(tm) не умеет это точно. В Qt, тоже нельзя сделать сиё. Остаются нативные api. Под виндой - всё просто, есть специальные api для этого, под остальными платформами придётся развлекаться, при этом под линукс теперь надо развлекаться и под x11 и под wayland если хочется портабельности.

Есть - фреймворки для написания автотестов к gui, видимо в первую очередь нужно смотреть на них.

pon4ik ★★★★★
()
Ответ на: комментарий от Chord

И видел, что есть опция «xdotool -» которая должная как бы читать команды из stdin, но почему-то не хочет работать.

Используй libxdo

monk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.