LINUX.ORG.RU

копи-паст минуя системный clipboard

 


0

2

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

Попытался накидать на autohotkey но она не умеет копировать минуя системный клипбоард, подскажите на чем проще это написать, есть опыт работы на perl и python, справятся они с задачей, или только C/C++ ?


Если должно работать только в иксах, то можно через atoms сделать попробовать. На C это выглядит как-то так. Для perl/python, скорее всего, есть биндинги для этих функций. Кажется, любое приложение (с той же исковой сессии?) может atom'ы писать/читать, так этого должно быть достаточно. Тут есть знающие иксовый интерфейс, можно в теги добавить и привлечь их внимание. Может даже xwininfo и компании хватит.

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 1)

по идее, подсвеченный текст вообще реализован библиотекой GTK (Qt etc), и его вряд ли вообще можно достать (для этого GTK (Qt etc) должна иметь такую возможность).

sevenredlines
()

Ну это как бы не от языка программирования, а от возможностей тулкита зависит - можно ли зная id окна получить выделенный текст. А дальше всё просто - по нажатию хоткея начинаем пихать соответствующие тексту нажатия кнопок клавиатуры в uinput. На пистоне это как-то так: http://tjjr.fi/sw/python-uinput/ Нажатия кнопок эмулируемой клавиатуры попадут в то окно, которое в данный момент в фокусе и принимает события от системной клавиатуры. Будет даже в голую консоль пастить.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от sevenredlines

Window7

Господа, прошу прощения, речь идет естественно про ОС: windows 7, если бы это было в иксах (X11), то вопроса бы не возникло, там второй буфер так работает по умолчанию

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

можно ли зная id окна получить выделенный текст. А дальше всё просто - по нажатию хоткея начинаем пихать соответствующие тексту нажатия кнопок клавиатуры в uinput.

мм, немного не так, подсвеченый текст должен быть в переменной сразу же, а не по нажатию хоткей, по хоткей - мы лишь выводим содержимое переменной.

httpd
() автор топика

про винфак уже говорили?

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

подсвеченый текст должен быть в переменной сразу же, а не по нажатию хоткей

А это полностью от тулкита зависит. Оно может вообще никак наружу не афишировать то, что что-то было выделено, просто раскрашивать гуйню и всё. Если правильно помню, GTK и Qt в какой-то атом запихивают выделение в стандартных виджетах, однако если виджет самодельный - то далеко не факт что в атом кто-то что-то засунет.

Stanson ★★★★★
()
Ответ на: Window7 от httpd

Что ж ты сразу-то не сказал. :)

В винде тоже зависит от виджета. Если виджет стандартный - то можно какое-нибудь EM_GETSELECTION впрыснуть и получить выделенный текст. Если нестандартный виджет - то может вообще не быть способа достать выделение.

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

виджеты не нужны, да я и не пользуюсь ими. в основном надо копировать из блокнота, мейл клиента, пары браузеров и скайпа.

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

виджеты не нужны

Как бы какой-нибудь edit control в винде это и есть виджет. Любое окошко которое имеет какую-то функцию является виджетом. От button до какого-нибудь rich textedit.

в основном надо копировать из блокнота, мейл клиента, пары браузеров и скайпа.

Ну с блокнотом всё несложно, а вот остальное может приподнести массу сюрпризов. Кстати, даже в блокноте, если не ошибаюсь нифига не стандартный multiline edit используется.

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