Потому что прога должна
быть сервисом, а не только зарегистрирована как сервис. Быть - это означает отвечать на запросы диспетчера сервисов.
Есть два пути - написать сервис на чистом апи (
vb6svc.zip) или воспользоваться микрософтовским контролом ntsvc.ocx
Второй способ несравненно проще и безглючней.
Лучший способ понять что-то самому — объяснить это другому.