Как узнать запущен ли X-сервер?, ? |
Здравствуйте, гость ( Вход | Регистрация )
Как узнать запущен ли X-сервер?, ? |
kwisp |
6.4.2009, 14:54
Сообщение
#1
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
собственно. как узнать запущен ли X-сервер на момент запуска программы???
|
|
|
Kagami |
6.4.2009, 15:45
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Поглядеть значение переменной окружения DISPLAY?
|
|
|
kwisp |
7.4.2009, 9:01
Сообщение
#3
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
значение переменной не даст ничего насколько я понимаю.
она может существовать и при остановленных иксах. тут вопрос на самом деле оказался еще шире. должен присутствовать способ узнатьв линуксе запущены ли иксы и имеет ли право программа на графическое представление. может ли рисовать? вот переррыли с товарищем документацию пока безуспешно. даже в коде искали что нить подобное. могу привести из ассистента странный пример по моему: Раскрывающийся текст
вот тут странно. проверяется с помощью #define под иксами запускаем или нет если под иксами то проверяем существует ли значение переменной "DISPLAY" потом независимо от результата создается объект QApplication который при отсутствии иксов валит программу с сообщением Цитата Cannot connect to X-server и только потом происходит проверка есть ли дисплей или нет.... короче странный пример помоему. Сообщение отредактировал kwisp - 7.4.2009, 9:02 |
|
|
Litkevich Yuriy |
7.4.2009, 9:56
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я неочень хорошо понимаю эту тему, но примерчик из жизни в openSUSE.
Если я сидя в кедах открою, в них, консоль. Затем наберу YaST2, этот самый YaST стартанет в консоли, чего-то там напишет, а потом появится в кедах окно YaST'а. Если же я переключу виртуальный терминал (Alt+Ctrl+Fn) и в нем наберу тоже самое, YaST запустится в этом терминале в режиме псевдографики (ncurses). Может ковырнуть его исходники (хотя там можно все конечности сломать) |
|
|
Kagami |
7.4.2009, 10:29
Сообщение
#5
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Если бы взглянули в документацию, то все было бы понятнее:
Цитата QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled ) Constructs an application object with argc command line arguments in argv. If GUIenabled is true, a GUI application is constructed, otherwise a non-GUI (console) application is created. Таким образом, если программа запущена под иксами, мы проверяем наличие переменной DISPLAY. Если она есть, то в конструктор пойдет true и мы получим графическое приложение. Если не найдем, то у нас получится консольное приложение в котором мы выведем сообщение и выйдем. Чего может быть проще? |
|
|
Litkevich Yuriy |
7.4.2009, 10:50
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Kagami |
7.4.2009, 10:57
Сообщение
#7
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
При штатной остановке он ее вычищает сам
|
|
|
kwisp |
7.4.2009, 12:56
Сообщение
#8
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Если бы взглянули в документацию, то все было бы понятнее: спасибо за экскурс в документацию мы проверяем наличие переменной DISPLAY. Если она есть, то в конструктор пойдет true может я не совсем понятно выазил свою мысль. однако, значение переменной не даст ничего насколько я понимаю. она может существовать и при остановленных иксах. короче пример из ассистента говорит нам штатной ситуации. получатся круг систем(в смысле различных машин) на которых программа будет работать корректно существенно съужается. для меня это ни есть хорошо. мне надо наверняка. + как узнать имеются ли права подключаться к иксам? Сообщение отредактировал kwisp - 7.4.2009, 12:57 |
|
|
Kagami |
7.4.2009, 14:09
Сообщение
#9
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Если у пользователя есть право подключаться к дисплею, у него будет эта переменная окружения. Нет права - нет переменной. Все просто Правда возможен случай когда запущено несколько дисплеев для разных пользователей...
|
|
|
kwisp |
7.4.2009, 14:29
Сообщение
#10
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
Текстовая версия | Сейчас: 18.9.2024, 2:39 |