Контроль неактивности оператора (+) | |
---|---|
novik Автор Сообщений: 75 Дата регистрации: 30.10.2009 |
Доброго дня уважаемые Знатоки!
Подскажите пожалуста (или намекните), как получить данные о неактивности в запущенной форме. (Т.е. фокус не получал ни один элемент, кнопки не нажимались какое-то время (скажем 15 минут)) Смысл чтобы закрывать форму (программу) через некоторое время неактивности ... |
Re: Контроль неактивности оператора (+) | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Для этого настраивают таймеры неактивности в операционной системе, а не делают закат солнца вручную.
------------------ Лень - это неосознанная мудрость. |
Re: Контроль неактивности оператора (+) | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
У ТСа, наверное, стоит задача "выгнать" всех из проги, что бы обновить ехе-шник.
PS вот юзер сильно обрадуется, когда он полдня набивал данные, вышел покурить, а прога закрылась ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Контроль неактивности оператора (+) | |
---|---|
DmitryKn Сообщений: 300 Дата регистрации: 06.04.2022 |
Ну вот юзер набивал полдня данные, устал, ушел на порносайт и залип. |
Re: Контроль неактивности оператора (+) | |
---|---|
novik Автор Сообщений: 75 Дата регистрации: 30.10.2009 |
Это вопрос тактики и стратегии ...
Пользователей около пятисот можно конечно обойтись и без "прибирания за пользователями", но такой механизм решил бы многие нюансы ... |
Re: Контроль неактивности оператора (+) | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Какая задача решается? Почему надо закрывать форму в приложении?
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Контроль неактивности оператора (+) | |
---|---|
_vit Сообщений: 5175 Дата регистрации: 29.07.2002 |
Кладешь на форму таймер.
Присваиваешь свойству Interval время неактивности которое должно вызвать необходимое тебе действие в миллисекундах. Во всех событиях которые характеризуют активность пользователя на форме (keypress, click) вызываешь Reset таймера. В событии Timer делаешь необходимые при длительной неактивности пользователя действия (закрываешь форму, программу, выключаешь компьютер, звонишь в МЧС ) Пока пользователь что-то делает - кликает, клацает, таймер сбрасывается не давая истечь времени до события Timer. Как только пользователь зазевался - вот тебе на. Время истекает и Timer срабатывает. Исправлено 2 раз(а). Последнее : _vit, 18.04.23 21:25 |
Re: Контроль неактивности оператора (+) | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Все так (приделывайте таймер на все формы... хотя там не просто, некоторые формы работают сутками, и это запрограммированное их право и назначение)
Далее, модерновая (забыл признак, забываю термины, а, модальную... в ней таймер работает?...) форма, типа да/нет, она не вырубается таймером (кстати, какое событие, сигнал, должен издать таймер чтобы убить саму форму Доб > Пока пользователь что-то делает - кликает, клацает, таймер сбрасывается не давая истечь времени до события Timer. Как только пользователь зазевался - вот тебе на. Время истекает и Timer срабатывает. Где размещать таймер, и какие команды в нем исполнять ... (программирование обычное) Доб2. Из тех возможностей (обработчиков событий) какие есть Исправлено 2 раз(а). Последнее : of63, 18.04.23 21:56 |
Re: Контроль неактивности оператора (+) | |
---|---|
novik Автор Сообщений: 75 Дата регистрации: 30.10.2009 |
Большое Спасибо!
|
Re: Контроль неактивности оператора (+) | |
---|---|
novik Автор Сообщений: 75 Дата регистрации: 30.10.2009 |
Большое Спасибо!
|
Re: Контроль неактивности оператора (+) | |
---|---|
novik Автор Сообщений: 75 Дата регистрации: 30.10.2009 |
Поиск и просмотр многочисленных документов привязанных к персонам (сканированных как правило) ...
Форму закрывать в общем для получения реальной статистики работы пользователей ... (Потому сильно не принципиально ...) Вход в форму, выход - пишут в журнал время входа - время выхода и логин доменной учётки ... =================================== Извиняюсь за вопрос ... уже разобрался ... =================== С уважением! |
Re: Контроль неактивности оператора (+) | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() вот так взял, и "разобрался", а я - нет )
|
Re: Контроль неактивности оператора (+) | |
---|---|
Vedmak Сообщений: 5967 Откуда: CiTY Дата регистрации: 30.10.2003 |
Тут вопрос надо начать с темы для чего нужно контролировать активность приложения.
В начале мне было актуально пинговать SQL-сервер в случае если пользователь пошел за кофем в соседний город. SQL-сервер закрывает "спящие" коннекты не сообщая об это клиенту. присоединяю базовый agent_class В разработке проекта тот класс получил наследника для "передергивания" списков на форме и прочего подобного. В файле наследник для закрытия приложения если пользователь не закрыл его после установленного конца рабочего дня. В терминальных сессиях это актуально для регулярного обновления EXE. ------------------ Говорить стоит лишь для тех, кто слушает. |
Re: Контроль неактивности оператора (+) | |
---|---|
Vedmak Сообщений: 5967 Откуда: CiTY Дата регистрации: 30.10.2003 |
PUBLIC goUserInfo, goAutoclose, goUpdateMessage IF goSet.get( set_update_enabled ) = logical_on AND goApp.terminal_mode = logical_off goUpdate = CREATEOBJECT('agent_update_class') IF goSet.get( set_update_check_boot ) = logical_on goUpdate.check() ENDIF goUpdate.start() ENDIF IF goSet.get( set_autoclose_enabled ) = logical_on AND goApp.dev_autoclose <> logical_no goAutoclose = CREATEOBJECT('agent_autoclose_class') goAutoClose.start() ENDIF Так у меня приложение создает объекты (Agent_class) которые проверяют наличие новых версий EXE и необходимость закрывать приложение в установленное время. ------------------ Говорить стоит лишь для тех, кто слушает. |
Re: Контроль неактивности оператора (+) | |
---|---|
andrewk Сообщений: 174 Откуда: Красноярск Дата регистрации: 15.05.2005 |
Просто к слову. Учитывая, что в коде везде VARTYPE() без второго параметра, то последующая проверка на ISNULL() везде лишняя. А ещё, если к моменту Init-а в текущей рабочей области будет курсор, в котором есть поле NewId, то случится странность, особенно если это поле не символьное)) (оказалось, про это в соседней ветке уже есть: forum.foxclub.ru) Исправлено 1 раз(а). Последнее : andrewk, 10.05.23 21:53 |
Re: Контроль неактивности оператора (+) | |
---|---|
Vedmak Сообщений: 5967 Откуда: CiTY Дата регистрации: 30.10.2003 |
Обдумаю.
Для разделения значения полей и переменных имеющих одинаковое названия я предпочитаю немного другой стиль. Я забираю запись из курсора в объект через SCATTER NAME to loA. Зачастую такой объект у меня протягивается через несколько методов,процедур и функций. Заранее не знаю где какое поле записи(объекта) будут востребовано. По этому у мена gcA / lcA переменные, а к полям записи я обращаюсь через объект loA.<field_name>. В целом цель одна: разделить гречку и просо. Просто методы разные: отделить гречку от проса или просо от гречки. Это образно. P.S. Хотя в REPLACE обращение к m. уместна. Но я стараюсь избегать симметрии в названиях полей и переменных. Но это другая история. ------------------ Говорить стоит лишь для тех, кто слушает. Исправлено 1 раз(а). Последнее : Vedmak, 13.06.23 19:33 |
© 2000-2024 Fox Club  |