Создание сервиса
От: Rinver  
Дата: 03.02.02 13:29
Оценка:
Привет All !

Нужно написать сервис, который по истечению некоторого времени (допустим 10 мин)
удалял определенный файл.
Проблема:
1. Я никогда не писал сервисов (посоветуйте ссылочки)
2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)

Заранее спасибо,Rinver
С уважением, Rinver.
Re: Создание сервиса
От: Рек Россия  
Дата: 03.02.02 14:42
Оценка:
Здравствуйте 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
Re[2]: Создание сервиса
От: Lexey Россия  
Дата: 04.02.02 09:42
Оценка:
Здравствуйте Рек, Вы писали:

R>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)

Рек>Таймер можно завести и без окна.

А вот и нет. Я тоже некоторое время назад так считал.

Рек>
Рек>UINT SetTimer(HWND hWnd, UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ); 
Рек>


Посмотри внимательно комментарии к SetTimer в MSDN. Там вполне четко написано, что функцию вызывает DefWindowProc при обработке WM_TIMER.

Впрочем, возвращаясь к исходному вопросу:
Сервис может иметь окно, т.ч. SetTimer использовать вполне возможно. Альтернативным вариантом
является использование multimedia timers.
Re[3]: Создание сервиса
От: rihter Россия http://rihter.slash-x.net
Дата: 04.02.02 12:43
Оценка:
Здравствуйте Lexey, Вы писали:

L>Здравствуйте Рек, Вы писали:


R>>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)

Рек>>Таймер можно завести и без окна.

L>А вот и нет. Я тоже некоторое время назад так считал.


AF кажется рассказывал подробности

L>Впрочем, возвращаясь к исходному вопросу:

L>Сервис может иметь окно, т.ч. SetTimer использовать вполне возможно. Альтернативным вариантом
L>является использование multimedia timers.
и Waitable Timer Objects
Re[4]: Создание сервиса
От: Alex Fedotov США  
Дата: 04.02.02 16:39
Оценка:
Здравствуйте rihter, Вы писали:

R>>>>2. Насколько я понимаю у сервиса нет окна. (как использовать таймер ?)

Рек>>>Таймер можно завести и без окна.

L>>А вот и нет. Я тоже некоторое время назад так считал.


R>AF кажется рассказывал подробности


Да, и он там рассказывал, что создать таймер без окна можно, но вот без цикла обработки сообщений — нельзя.
-- Alex Fedotov
Re: Создание сервиса
От: Kaa Украина http://blog.meta.ua/users/kaa/
Дата: 04.02.02 17:44
Оценка:
Здравствуйте 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, но это, я думаю, уже никого не пугает ;-))

С уважением,
Алексей Кирдин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.