| Автор | Сообщение |
|
|
| постоянный участник
|
Пост N: 8026
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.25 10:40. Заголовок: Сколько времени юзер работал в программе ?
Каждый юзер входит в программу со своим логином и паролем. Время работы программы считается просто. А можно ли посчитать сколько юзер РЕАЛЬНО работал в программе ? И как это сделать ?
|
 |

|
|
Ответов - 12
[только новые]
|
|
|
|
| постоянный участник
|
Пост N: 4790
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.25 15:05. Заголовок: Andrey Веди таблицу..
Andrey Веди таблицу: user, DtmVxod, DtmVixod,... для всех user Ставь Filter на user, считай Если иметь индекс INDEX ON &("upper(user)+hb_TtoS(DtmVxod)") ..., то можешь ставить SCOPE upper(user)+cDat1, upper(user)+cDat2, т.е. за период итоги работы user. user можно представлять кодом из справочника user-ов
|
 |

|
|
|
| постоянный участник
|
Пост N: 8027
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.25 16:44. Заголовок: SergKis пишет: Веди..
SergKis пишет: | цитата: | | Веди таблицу: user, DtmVxod, DtmVixod,... для всех user |
| Эта таблица есть, действия юзеров записываю. Вопрос в другом, юзер скинул программу и включил Яндекс и смотрит кино, или тупо в одноклассниках сидит. Вот такая работа бывает... Нужно считать время активной работы программы, т.е. когда юзер в ней работает, т.е. ходит в окнах, ищет что-то и т.д. Т.е. счёт времени на MAIN форме и всех других формах: ON GOTFOCUS {|| ???? } ; ON LOSTFOCUS {|| ???? } Или отдельный поток запустить и пускай он считает кол-во времени работы юзера и какие окна открыты ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4791
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.25 16:51. Заголовок: Это уже ты делал, в ..
Это уже ты делал, в каком то, примере. Лови события мышки, клавиатуры, ... в блоке SET EVENTS FUNCTION TO bEvents
|
 |

|
|
|
| постоянный участник
|
Пост N: 8028
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.25 16:52. Заголовок: SergKis пишет: Это ..
SergKis пишет: | цитата: | | Это уже ты делал, в каком то, примере. |
| Это не то... Или отдельный поток запустить и пускай он считает кол-во времени работы юзера и какие окна открыты ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 8029
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.25 15:00. Заголовок: https://i.postimg.cc..
Есть программа учёта времени работы компа и запущенных программ ! Красным цветом - простой компа или программы. Вот есть бесплатная версия: https://www.manictime.com/download/windows/olderDownloads Хотелось бы такое попроще, только на свою программу. Можно ли как то отслеживать нажатие кнопки в фокусе окна и засечь время нажатия на окне ? Т.е. если 5 минут юзер на любое окно моей программы не нажимал, то далее пошло время простоя программы. Если скинул программу на Панель задач или ушёл с задачи на другое окно, то пошло время простоя программы. DEFINE WINDOW .... ; .... ON GOTFOCUS ???? ; ON LOSTFOCUS ????
|
 |

|
|
|
| |
Пост N: 8127
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.09.25 17:05. Заголовок: Andrey я тут погугл..
Andrey я тут погуглил... если есть подробное описание вот этих отчетиков из 1с , то поищи отчеты «Активность пользователей» или «Динамика активности пользователей» ps Андрей а если юзер запустил построение какого то долгого отчета (минут на 20 скажем) и переключился на другое окно , то он по твоему активен был или нет ? 
|
 |

|
|
|
| постоянный участник
|
Пост N: 8030
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.25 17:15. Заголовок: Dima пишет: переклю..
Dima пишет: | цитата: | | переключился на другое окно , то он по твоему активен был или нет ? |
| Нет не активен. Пока юзер на окне, он активен, если ушёл, то не активен. Если прога считает отчёт и окно на экране, то юзер активен.
|
 |

|
|
|
| |
Пост N: 8128
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.09.25 17:29. Заголовок: Andrey пишет: Если ..
Andrey пишет: | цитата: | Если прога считает отчёт и окно на экране, то юзер активен. |
| а зачем ему пялиться в бегунок построения отчета 20 минут ?)) ладно , тебе виднее.
|
 |

|
|
|
| постоянный участник
|
Пост N: 8031
Зарегистрирован: 12.09.06
|
|
Отправлено: 06.09.25 19:45. Заголовок: Dima пишет: а зачем..
Dima пишет: | цитата: | | а зачем ему пялиться в бегунок построения отчета 20 минут ?)) |
| Да нет у меня таких отчётов. Из-за этого и делаю такое допущение. Отчёт по базе 2 млн. записей (1404 Мб. на диске HDD) считается за: SCOPE - время счёта 00:00:10.711 (10 секунд) DoWhile -> Array - время счёта 00:00:57.393 SCOPE + FILTER - время счёта 00:02:02.459 Условная индексация - время счёта 01:08:17.608
|
 |

|
|
|
| постоянный участник
|
Пост N: 4793
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.09.25 19:58. Заголовок: Andrey Повторю Лови..
Andrey Повторю Лови события мышки, клавиатуры, ... в блоке SET EVENTS FUNCTION TO bEvents В примере (он был у тебя) в bEvents считались WM_... события, сделай счетчики - PUBLIC oThrInfo := TThrData():New() // для работы в основном и thread потоках для доступа к переменным - считай в oThrInfo события WM_... по мышке, клавиатуре - сделай счетчик для форм, хоть на SKIP в циклах - в thread с циклом, типа таймера, проверяй total по счетчика, если 10 или 20 минут total счетчик не изменился, то user спит или кофе пьет или уже дома ... Если не спит сбрасывай счетчики в 0
|
 |

|
|
|
| |
Пост N: 368
Зарегистрирован: 05.10.06
|
|
Отправлено: 09.09.25 16:19. Заголовок: Andrey пишет: Можно..
Andrey пишет: | цитата: | Можно ли как то отслеживать нажатие кнопки в фокусе окна и засечь время нажатия на окне ? Т.е. если 5 минут юзер на любое окно моей программы не нажимал, то далее пошло время простоя программы. Если скинул программу на Панель задач или ушёл с задачи на другое окно, то пошло время простоя программы. |
| может считать время состояния Idle ?
|
 |

|
|
|
|
|
| постоянный участник
|
Пост N: 4797
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.09.25 18:35. Заголовок: MIKHAIL пишет может ..
MIKHAIL пишет | цитата: | | может считать время состояния Idle ? |
| У Андрея MiniGui, проще в потоке считать минуты, а в блоке SET EVENTS FUNCTION TO bEvents, при наступлении событий WM_..., сбрасывать минуты в 0. Если набралось минут больше указанного, то user типа спит
|
 |

|
|