|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
Привязаться к другому xterm19.07.2018, 21:17. Показов 2720. Ответов 24
Метки нет (Все метки)
Здравствуйте!
Если программа запускается из терминала, то она в него же и выводит. Но программа может быть и без терминала, а требуется из неё запустить xterm, чтобы она выводила в него, как если бы она была из него запущена. Я только сейчас с этим столкнулся и ещё не нашёл, как назначить себе терминал. Т.е. из программы xterm запускается, имеет фокус ввода, но программа в него не выводит, хотя к другому не привязана. Как это делается?
0
|
|
| 19.07.2018, 21:17 | |
|
Ответы с готовыми решениями:
24
Как на время привязаться к другому внешнему айпи-адресу? Xterm Настроить XTerm |
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
| 19.07.2018, 22:05 | |
|
peter_irich, вы захотели необычного.
Терминальное устройство представлено в виде файла. Граф. терминалы чаще всего связываются с программами через устройства /dev/pts/0-1-2... Текстовые псевдо-терминалы - /dev/tty0-1-2.... Реальные терминалы подключаются обычно к сериал-порту /dev/ttyS0-1-2... Чтобы вывести информацию на нужный терминал, достаточно записать ее в соответствующий файл и наоборот. Имейте в виду, что после запуска терминальной программы обычно в этом терминале сразу запускается оболочка (шелл). Вам, судя по всему, вместо нее придется запустить другую программу (ключ -e), наверное, какую-то свою.
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
| 19.07.2018, 22:21 [ТС] | |
|
gng, благодарю за внимание. Моя программа - графическая, на Qt. Я запускаю из неё xterm
и мне требуется, чтобы система посылала ему события, имитирующие нажатия и отпускания клавиш. Т.е. у меня есть написанный мною модуль ядра, я из программы с помощью своей ioctl() посылаю ему код клавиши, а модуль вызывает input_event() с этим кодом. Так система посылает эти коды либо в тот терминал, из которого запущена основная программа, эта или тестовая, или непонятно куда, если такого терминала нет. Я надеялся, что система будет посылать события этому xterm, т.к. он имеет фокус ввода, но нет, ей надо, чтоб это был терминал, из которого программа запущена, поэтому и такой вопрос.
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
| 24.07.2018, 20:29 [ТС] | |
|
Точнее, системе надо, чтобы у программы был управляющий терминал, куда она могла бы посылать её вывод.
Я пытаюсь его назначить, как это описано в книге Робачевского, в 3-ем издании это страницы 200, 201, но пока не получается. Т.е. программа на Qt запускается не из терминала, а просто запускается исполнимый файл, когда надо, она запускает xterm, он оказывается поверх окна программы и я пытаюсь включить программу в его группу, но пока, по-видимому, делаю это неправильно. Кроме того, с правами root'a можно включиться и в любую группу, не только своего сеанса, но этого я ещё не пробовал.
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
| 25.07.2018, 21:29 [ТС] | |
|
Сейчас есть x-session-manager, у него есть родитель, а pid, gid и sid одинаковы, есть xterm и моя программа,
у них родителем является x-session-manager и у них у каждого тоже pid, gid и sid совпадают. Тут важно, что у всех них разные sid, а есть желание сделать этот xterm управляющим терминалом для моей программы, т.е. нужны права root, т.к. для него нет ограничения на принадлежность программ к одному сеансу. Пока не пробовал. Кстати, книга Робачевского - 2-е издание, я ошибся.
0
|
|
|
153 / 148 / 66
Регистрация: 20.02.2014
Сообщений: 556
|
||||||
| 10.08.2018, 17:31 | ||||||
|
peter_irich, а сам Qt не убивает stdin, stdout, если не консольное приложение?
Попробуй, может быть
0
|
||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
| 10.08.2018, 19:50 [ТС] | |
|
Вованя, вот самому открывать /dev/tty не приходило в голову, да и freopen() никогда не использовал.
Благодарю за совет, но попробовать именно в той программе смогу не раньше четверга. Вообще я надеялся, что система будет посылать вывод input_event() в окно, имеющее фокус ввода, но нет, она хочет посылать его в управляющий терминал. А то я запускаю из программы xterm, он появляется поверх всего и имеет фокус ввода, но вывод в него не идёт. Кроме того, если после его запуска запустить из программы же небольшой скрипт, в котором среди прочего есть вызов ps, то этот ps не показывает в свём выводе запущенный из программы xterm.
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
||||||
| 18.03.2019, 21:28 [ТС] | ||||||
|
Вованя, Я нашёл, как добиться желаемого с помощью xdotool. Есть модуль, есть тестовая програмmа на C,
есть xterm и есть fly-terminal, из которого я запускаю скрипт из нескольких команд, из таких:
А можно ли как-книбудь узнать идентификатор окна, о котором говорится в "man xdotool"? Идентификатор окна, показываемый среди "wmctrl -l" - это не то.
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|||||||
| 19.03.2019, 08:25 | |||||||
0
|
|||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
||||||
| 19.03.2019, 10:50 [ТС] | ||||||
|
Это то, что в "man xdotool" называется "WINDOW_STACK", в команде
то он не не работает или я неправильно указываю. Мне хотелось бы использовать не "search", а выбор по номеру.
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
||
| 19.03.2019, 11:12 | ||
|
Если у команды указано в параметрах [window] то, она может брать идентификатор окна только из стэка (в который само-собой этот идентификатор надо сначала "положить"). Если же команда воспринимает параметр --window, то там вы можете задать идентификатор напрямую. windowfocus умеет брать значение только из стэка.т.е. ей _обязательно_ должна предшествовать команда помещающая в стэк хотя бы один идентификатор окна.
0
|
||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|||||||||||
| 19.03.2019, 15:41 [ТС] | |||||||||||
|
Я всё равно не понял, что надо xdotool. Например, если я пишу
что это неизвестная команда. Чего-то я в синтаксисе xdotool не понимаю.
0
|
|||||||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|||||||
| 19.03.2019, 16:15 | |||||||
0
|
|||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
||||||
| 19.03.2019, 16:15 [ТС] | ||||||
|
Я попробовал написать
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|||||||
| 19.03.2019, 16:30 | |||||||
0
|
|||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
||||||
| 19.03.2019, 17:05 [ТС] | ||||||
|
prik, Так мне обязательно получать id из командной строки.
Если я получаю id из вывода "wmctrl -l" и подставляю его в
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
|||
| 19.03.2019, 17:35 | |||
|
0
|
|||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
||||||
| 19.03.2019, 18:23 [ТС] | ||||||
|
prik, Вот только что запущенный вариант
0x01600024 0 mainoper operator0@mainoper: ~ 0x01000008 0 N/A fly-term 0x01600024 - это xterm. Сообщения об ошибке нет, но команда с "click" не работает. Работает вариант с "search --class "xterm" Кстати, у меня в xdtool нет слова "selectwindow".
0
|
||||||
|
725 / 224 / 73
Регистрация: 01.03.2011
Сообщений: 643
|
||||||||
| 19.03.2019, 18:35 | ||||||||
0
|
||||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,389
|
|
| 19.03.2019, 21:23 [ТС] | |
|
prik, В Ubuntu-18.04 в xdotool selectwindow есть, а сегодня я запускал в Astra Linux 1.4, ядро 3.16.
И что же, переводить в строку из десятичных символов?
0
|
|
| 19.03.2019, 21:23 | |
|
Помогаю со студенческими работами здесь
20
Можно ли привязаться к железу? Сокеты. Как привязаться к ip сервера Как привязаться к системному времени? Как привязаться из ItemTemplate к свойству DataContext
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|