Здравствуйте Rinver, Вы писали:
R>Привет All !
R>Нужно написать сервис, который по истечению некоторого времени (допустим 10 мин)
R>удалял определенный файл.
R>Проблема:
R>1. Я никогда не писал сервисов (посоветуйте ссылочки)
VC++ имеет визард, который тебе сгенерит "балванку" сервиса (разновидность ATL-проекта),
R>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)
Таймер можно завести и без окна.
UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc );
Обрати внимание на последний параметр
R>Заранее спасибо,Rinver
Здравствуйте Рек, Вы писали:
R>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)
Рек>Таймер можно завести и без окна.
А вот и нет. Я тоже некоторое время назад так считал.
Рек>Рек>UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc );
Рек>
Посмотри внимательно комментарии к SetTimer в MSDN. Там вполне четко написано, что функцию вызывает DefWindowProc при обработке WM_TIMER.
Впрочем, возвращаясь к исходному вопросу:
Сервис может иметь окно, т.ч. SetTimer использовать вполне возможно. Альтернативным вариантом
является использование multimedia timers.
Здравствуйте Lexey, Вы писали:
L>Здравствуйте Рек, Вы писали:
R>>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)
Рек>>Таймер можно завести и без окна.
L>А вот и нет. Я тоже некоторое время назад так считал.
AF кажется рассказывал подробности
L>Впрочем, возвращаясь к исходному вопросу:
L>Сервис может иметь окно, т.ч. SetTimer использовать вполне возможно. Альтернативным вариантом
L>является использование multimedia timers.
и Waitable Timer Objects
Здравствуйте rihter, Вы писали:
R>>>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)
Рек>>>Таймер можно завести и без окна.
L>>А вот и нет. Я тоже некоторое время назад так считал.
R>AF кажется рассказывал подробности
Да, и он там рассказывал, что создать таймер без окна можно, но вот без цикла обработки сообщений — нельзя.
Здравствуйте Rinver, Вы писали:
R>Привет All !
R>Нужно написать сервис, который по истечению некоторого времени (допустим 10 мин)
R>удалял определенный файл.
R>Проблема:
R>1. Я никогда не писал сервисов (посоветуйте ссылочки)
Программирование серверных приложений для Windows 2000Автор(ы): Джеффри Рихтер, Джейсон Кларк
В книге Джеффри Рихтера и Джейсон Кларка исчерпывающе описаны функции новой операционной системы
Microsoft — Windows 2000, позволяющие создавать высокопроизводительные и
надежные серверные приложения. Менеджер управления службами, контроль
производительности и системных событий, асинхронный ввод-вывод, система
безопасности и защищенное взаимодействие приложений обеспечат надежную и
эффективную работу ваших приложений в качестве служб операционной системы 24
часа в сутки 7 дней в неделю. Все главы содержат примеры, написанные на C++,
демонстрирующие описываемые технологии. Вы можете использовать в своих
приложениях фрагменты этих программ и готовые классы C++, исходные тексты
которых содержатся на прилагаемом компакт-диске. Книга состоит из 12 глав, 2
приложений и предметного указателя. Прилагаемый к книге компакт-диск содержит
программное обеспечение, примеры приложений, документацию и электронную версию
книги.
. Читаю. Все доходчиво.
R>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)
Используй Waitable Timers (См.
CreateWaitableTimer,
SetWaitableTimer).
Никаких окон и обработчиков событий не надо.
Правда, не будет работать под Win95, но это, я думаю, уже никого не пугает ;-))
С уважением,