Название: [РЕШЕНО] Имитация ctrl+v в системе Отправлено: alexorleon от Июнь 16, 2016, 09:10 День добрый.
Подскажите, как программно вызвать комбинацию клавиш "ctrl+v"? В трее крутится программа и читает com порт. При возникновении события, она копирует сообщение в буфер: Код: QClipboard *clipboard = QApplication::clipboard(); Теперь надо вставить этот текст где стоит курсор. Это может быть и открытый блокнот и адресная строка браузера и т.д. Или может есть другие решения? Все, что находил, работает непосредственно внутри самой программы. Название: Re: Имитация ctrl+v в системе Отправлено: Bepec от Июнь 16, 2016, 11:48 Платформозависимо вызвать Ctrl + V. При этом снимая фокус с окна программы своей если он есть :)
Название: Re: Имитация ctrl+v в системе Отправлено: alexorleon от Июнь 16, 2016, 12:01 Платформозависимо вызвать Ctrl + V. При этом снимая фокус с окна программы своей если он есть :) Вот уже пол дня пытаюсь нагуглить. Но попадается противоположное решение (регистрация клавиш, т.е. реагирование программы на пользовательский ввод) :)Название: Re: Имитация ctrl+v в системе Отправлено: Igors от Июнь 16, 2016, 12:13 Теперь надо вставить этот текст где стоит курсор. Это может быть и открытый блокнот и адресная строка браузера и т.д. Нативными средствами - почему нет? WinAPI - см GetFocus и SendMessage. На OSX хужее - придется рыться в AppleTalk. Это достижимо, но толку - послать "кому-то", кто неизвестно что сделает. Смысл? Или может есть другие решения? Название: Re: Имитация ctrl+v в системе Отправлено: alexorleon от Июнь 16, 2016, 12:33 У меня возникли сложности с АПИ под линукс. Толком ничего не нашел. Но для себя нашел вот такое решение.
Ставим Xdotool. http://xmodulo.com/simulate-key-press-mouse-movement-linux.html Код: QClipboard *clipboard = QApplication::clipboard(); Есть исходники, можно будет покопаться, поизучать. Под убунтой точно работает. Всем спасибо за помощь! |