Starting a Service in Windows XP | CodeGuru

Starting a Service in Windows XP

Environment: VC++ 6.0, Windows XP Introduction I was learning how to start a service from a program (VC++) in a Windows XP environment. Background Basically, my problem was putting a system tray icon through a DLL that will be run by the winmgmt service in Windows XP. I tried so many ways within my knowledge […]

Written By
CodeGuru Staff
CodeGuru Staff
Apr 14, 2003
1 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Environment: VC++ 6.0, Windows XP

Introduction

I was learning how to start a service from a program (VC++) in a Windows XP environment.

Background

Basically, my problem was putting a system tray icon through a DLL that will be run by the winmgmt service in Windows XP. I tried so many ways within my knowledge but failed. So, I tried running it as a service option. It is simple. It just uses a few functions.

Using the Code

I used the sample code available in MSDN, everything relating to starting a service put into a function called StartSampleService(). The core part starts with OpenSCManager.

The OpenSCManager function establishes a connection to the service control manager on the specified computer and opens the specified service control manager database.

SC_HANDLE OpenSCManager(
LPCTSTR lpMachineName,
LPCTSTR lpDatabaseName,
DWORD   dwDesiredAccess
);

This returns a handle of type SC_HANDLE that will be used to open a service.

schService =

OpenService( schSCManager,          // SCM database
"IconService",                      // service name Here I gave
                                    // my sample service, Please
change this SERVICE_ALL_ACCESS);    // use according to your wishes.
                                    // See that the service is not
                                    // running currently.

Then next call is to StartService(..). The results displayed through the console are done through message boxes.

Advertisement

Points of Interest

The interesting thing I learned is doing Console applications and still using the windows functionality such as MessageBoxes.To get this, I started my project as a Win 32 console application and in next dialog box, I selected “An Application that supports MFC.” It made things simpler.

Downloads


Download demo project – 26 Kb



Download source – 3 Kb

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.