Windows NT services, unlike conventional applications, work closely with the operating system. Namely, they are called in the address space and in the context of the operating system, while getting some capabilities that are not available to regular applications. The list of services running on your machine can be obtained from the Control Panel, but it is available only for a user with administrator rights. Many important components of the NT operating system itself are organized as services. Or, to put it quite differently: the operating system is made up of components that are services. Thus, making an application a service means that your application becomes a component of the operating system.
In fact, the API for organizing your application as a service is not too difficult. But with the proposed set of objects, this work is so radically easier that not using it is just blasphemy.
So, the KOLService package, by Alexander Shakhaylo (Ukraine). Objects:
•TServiceContol - allows you to register a service and manage it (stop, start);
•TService - allows you to organize the application itself, in which it is used as a service;
•TServiceEx- allows the service to be interactive, that is, to have a visual interface with regular forms and other windows. Why should this object be used instead of TService.
The differences between the process of writing a service and writing a regular application are very small. The most significant of these is that your code, in the case of services, runs in the context of an operating system task, and is styled as a set of event handlers for a TService or TServiceEx object.
But we must not forget that the service actually becomes a component of the operating system. If it malfunctions or freezes, then this will greatly affect the performance of the entire system. In addition, there are practically no tools for debugging the service, except for the formation of your own log files or sound signals. Try, if possible, to debug the algorithms to whom, how to use them inside the service.