Russian Qt Forum

Qt => Общие вопросы => Тема начата: Magvaj от Апрель 15, 2009, 17:25



Название: Определение неактивности пользователя(устройств ввода)
Отправлено: Magvaj от Апрель 15, 2009, 17:25
Собственно, есть ли способ для сабжа в Qt. Или же курить документацию для каждой системы отдельно?

P.S: нужно для мессенджера, чтобы устанавливать статус "отошёл"


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: Пантер от Апрель 15, 2009, 18:52
Конкретно под каждую платформу делать.


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: ax от Апрель 16, 2009, 13:11
попробуй.
1. Установить глобальный перехват Events для Application
Код:
	QCoreApplication::instance()->installEventFilter(this);
2. таймер
Код:
	
           int inactiveTime = 60*1000;
           QTimer * timerInactive = new QTimer(this);
connect(timerInactive, SIGNAL(timeout()), this, SIGNAL(inactiveTimeout()));
timerInactive->setInterval(inactiveTime);
timerInactive->start();

3. в процедуре обработки event
Код:
bool MyObject::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress || event->type() == QEvent::MouseMove ||
event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease)
{
if (timerInactive->isActive())
timerInactive->start();
}
return false;
}

Соответсвенно если в течении inactiveTime мс не нажимались клавиши и не двигалась-клацалачь мышь будет сигнал inactiveTimeout
У меня работает Linux, Win


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: spirit от Апрель 16, 2009, 13:16
ну так этот метод будет работать только для данного приложения,
а как я понял ему нужно время простоя всей системы.
как например в аське, жабе или скайпе, если полязователя нет
за компом, то через определенное время поменяется статус.


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: kirill от Апрель 17, 2009, 05:47
Под виндой внедрять длл во все процессы и следить за активностью через хуки.


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: Magvaj от Апрель 17, 2009, 07:58
благодарю за ответы. Сажусь кодить...


Название: Re: Определение неактивности пользователя(устройств ввода)
Отправлено: ритт от Апрель 26, 2009, 03:08
советую поряться в исходниках psi. свежий psi написан на Qt4, а требуемый по сабжу функционал, насколько я помню, был вынесен в отдельный класс или модуль.