'************************************************** '* Пример службы NT * '* © 2000-2001 Сергей Мерзликин * '* http://smsoft.chat.ru * '* e-mail: smsoft@chat.ru * '************************************************** Как написать службу NT на VB6 Данный пример был создан для иллюстрации возможности написания служб Windows NT/2000/XP средствами Visual Basic. Разумеется, для создания своей службы вы можете использовать бесплатный элемент управления NTSVC.OCX от Microsoft, и этот способ достаточно прост и надежен, но имеет один недостаток: вы не можете применять опцию "Unattended execution". Совместно с этой опцией элементы управления OCX применяться не могут (но вы можете использовать NTSVOCX.DLL от BackupReport). Этот пример написан при помощи VB6 без использования каких-либо внешних компонентов. В нем решены проблемы многопоточности, серьезно ограничивающие функциональность VB. Часть функций API описана в библиотеке типов, и это является решением проблемы. Поскольку служба скомпилирована с опцией "Unattended execution", она не имеет визуального интерфейса. Для просмотра сообщений, записываемых службой в Application Log, используйте NT Event Viewer. Функциональная часть службы (отсутствующая в данном примере) должна быть объектно-ориентированной и управляемой событиями. Все события должны обрабатываться в течение нескольких секунд, в противном случае служба не будет иметь возможности обрабатывать запросы Диспетчера Служб. См. также: Microsoft Knowledge Base Q137890, Q170883, Q175948, http://msdn.microsoft.com/library/techart/msdn_ntsrvocx.htm, http://msdn.microsoft.com/library/periodic/period98/service.htm, http://msdn.microsoft.com/library/periodic/period98/vb98j1.htm http://vbwire.com/advanced/howto/service.asp http://vbwire.com/advanced/howto/service2.asp Статью Мэтта Кэрланда "Create Worker DLL Threads" в журнале "Visual Basic Programmer's Journal" за июнь 1999 года. 30 сентября 2001 г.