Показать сообщение отдельно
  #6  
Старый 29.01.2010, 18:47
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,018
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тут стоит вопрос так: что тебе надо все-таки.
Просто посчитать время работы пользователя - дык тут сервис не особо нужен. Просто запускаешь какой-нить экзешник через ключ реестра Run, а при его закрытии сохраняешь данные.
Если хочется чего-то более умного и навороченого, например, если на машине работает несколько пользователей и программа должна корректно все это логировать, то тогда действительно лучше сделать сервис.

Да, для тех, кто в танке. Сервис может стартовать до логина какого-либо пользователя под системной учетной записью. Никаких проблем в этом не наблюдается. Например, у меня на работе во многих проектах так работает транспорт на сервере. Стартует в виде сервиса при старте сервера. Естественно, никаких пользователей на сервере нет. Кстати, даже в этом случае можно стартовать сервис из под какого-либо пользователа, только в этом случае, кажется, винда просто фактически залогинет этого пользака...

А теперь про сервисы. Сервис делается с помощью специального типа приложения. В меню File -> New -> Other, потом выбираем service Application. Далее реализуем события OnStart и OnStop. В первом создаем рабочий поток и запоминаем ссылку на него, во втором - убиваем этот рабочий поток. Вся бизнес логика должна быть реализована именно внутри этого рабочего потока.
Ответить с цитированием