DFWindowsServiceLib
Library for work with windows services in Delphi
- Quiet · last change 5-18-2023
- ★ 1 on GitHub
README
DFWindowsServiceLib
Library for work with windows services in Delphi Here are some of the actions that we can include: Start a Windows service Stop a Windows service Pause a Windows service Resume a Windows service Restart a Windows service Get the status of a Windows service Get the list of all installed Windows services Install a new Windows service Uninstall an existing Windows service Change the configuration of a Windows service With these actions in mind, we can start building the DFWindowsServiceLib library. We will use Delphi as the programming language and the Windows API for Windows service management. First, we will create a class called TDFWindowsService that will represent a Windows service. This class will have properties such as Name, DisplayName, Description, Status, and StartupType. It will also have methods to start, stop, pause, resume, and restart the service. Next, we will create a class called TDFWindowsServiceManager that will manage the Windows services. This class will have methods to get the list of all installed services, get the status of a service, install a new service, uninstall an existing service, and change the configuration of a service. Finally, we will create a class called TDFWindowsServiceInstaller that will install and uninstall Windows services. This class will use the Windows API functions such as OpenSCManager, CreateService, DeleteService, and ChangeServiceConfig to install and uninstall services.
I can provide you with some examples of how to use the DFWindowsServiceLib library in Delphi. To use the DFWindowsServiceLib library in Delphi, you will need to import the .NET assembly into your Delphi project. Here are the steps to do this: Open your Delphi project. Select Project > Add to Project > .NET Assembly. Browse to the location of the DFWindowsServiceLib.dll file and select it. Click OK to add the assembly to your project. Once you have added the assembly to your project, you can start using the DFWindowsServiceLib classes in your Delphi code. Here is an example of how to use the DFWindowsServiceManager class to get the list of all installed Windows services:
uses
DFWindowsServiceLib;
procedure TForm1.Button1Click(Sender: TObject);
var
serviceManager: DFWindowsServiceManager;
services: TArray<ServiceController>;
service: ServiceController;
begin
serviceManager := DFWindowsServiceManager.Create;
try
services := serviceManager.GetServices;
for service in services do
begin
Memo1.Lines.Add(service.ServiceName);
end;
finally
serviceManager.Free;
end;
end;In this example, we create an instance of the DFWindowsServiceManager class and call the GetServices method to get an array of all installed Windows services. We then loop through the array and add each service name to a memo control. Here is an example of how to use the DFWindowsService class to start a Windows service:
uses
DFWindowsServiceLib;
procedure TForm1.Button2Click(Sender: TObject);
var
service: DFWindowsService;
begin
service := DFWindowsService.Create;
try
service.Name := 'MyService';
service.Start;
ShowMessage('Service started successfully.');
finally
service.Free;
end;
end;In this example, we create an instance of the DFWindowsService class and set the Name property to the name of the service we want to start. We then call the Start method to start the service and display a message box to indicate that the service was started successfully. These are just a couple of examples of how to use the DFWindowsServiceLib library in Delphi. You can customize the code to fit your specific needs and requirements.

