Russian Qt Forum
Ноябрь 27, 2024, 09:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Выход из screensaver-a  (Прочитано 4856 раз)
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« : Декабрь 02, 2011, 18:53 »

Есть необходимость из приложения которое слушает com порт по определённому событию прерывать запущенный screensaver.

В сесии KDE (версия 4.7.2), X Server 1.10.4, Ubuntu 11.10. Замечательно работает решение

Код
C++ (Qt)
QDBusMessage m = QDBusMessage::createMethodCall("org.freedesktop.ScreenSaver",
                                                 "/ScreenSaver",
                                                 "org.freedesktop.ScreenSaver",
                                                 "SimulateUserActivity");
QDBusConnection::sessionBus().send(m);
 

И вот сегодня обнаружил, что для Gnome\OpenBox и т.д., X Server 1.7.7, Debian squeezy решение не работает т.к. сервиса org.freedesktop.ScreenSaver совсем нет. Не искал но подозреваю, что дело в версии Х.

Собственно сам вопрос. Каким образом можно прервать работающий screensaver?

Интересует решение только для Linux.
На всякий случай: "kill -9" не решение Улыбающийся
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Декабрь 02, 2011, 21:23 »

См. здесь.
Записан

Qt 5.11/4.8.7 (X11/Win)
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #2 : Декабрь 03, 2011, 02:32 »

См. здесь.
Я искал по форуму прежде чем написать. В том числе смотрел и там.
Мне не нужно блокировать запуск, мне нужно при наступлении события прервать работу уже запущенного screensaver-а.

Может я чего-то там не дочитал? Ну так ткните в то место которое я пропустил.
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Декабрь 03, 2011, 15:26 »

Может я чего-то там не дочитал? Ну так ткните в то место которое я пропустил.

Самое простое - вызвать xscreensaver-command -deactivate. Сложнее - сделать то же самое, только через вызовы функций.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Декабрь 04, 2011, 20:09 »

Код
C++ (Qt)
int XResetScreenSaver(Display *display);
Записан

Qt 5.11/4.8.7 (X11/Win)
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #5 : Декабрь 06, 2011, 11:36 »

Код
C++ (Qt)
int XResetScreenSaver(Display *display);
Сделал clone всего что живет в
Код:
git://git.videolan.org/vlc.git
и
Код:
grep -Ri XResetScreenSaver ./
ничего не находит
точно так называется функция?
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Декабрь 06, 2011, 11:39 »

точно так называется функция?
Да, только vlc исходники тебе уже не нужны)
Записан

Qt 5.11/4.8.7 (X11/Win)
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #7 : Декабрь 06, 2011, 11:41 »

Да, только vlc исходники тебе уже не нужны)
Годится :-)

Это Х Server-а функция?
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #8 : Декабрь 06, 2011, 11:44 »

Это Х Server-а функция?
Xlib
Буду медитировать
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.096 секунд. Запросов: 23.