Category Archives: C#

List all Windows services in C#

I decided to make a tutorial to help the ones that were interested to learn how to go over the Windows services so they can either start/stop/pause them or just display them in a control. The code I’ll be showing is from a program I created with the purpose of listing all the services info in a listview control.

The first steps you will need to take is reference “System.ServiceProcess” which will allow us to use the ServiceController class and also add the following code on the top of our Form/Class:

We start by declaring our ServiceController class and populating it with all the services that currently run in the system using .GetServices();

Then we need to use a foreach loop in order to go through all the services. For the sake of this tutorial I’ll be using only one try/catch, usually you will want more to display more accurate info based on what info you fail to retrieve, in this case if an error occurs the whole service won’t be added to the list.

It’s time to start populating our ListView columns. The columns we will be using is the services name/status/location/description. To do that we need to first declare a new ListViewItem that we will be using to add the information. The service name and status info are easy to obtained using the ServiceController class as follows:

List Windows active processes in C#

Since some people were interested on how to get all the Window processes, I decided to make this tutorial. How you tailor it to your needs is up to you.

We start off by referencing System.Management and adding the following on the top of our Form/Class:

Then we need to declare our main classes. In this case that would be ManagementClass and ManagementObjectCollection in order to help us loop through the active process. Note that this can also be done by Process.GetProcesses() but there is a limitation. Process.GetProcesses() can only see the same bit process as your .exe files. So using that mean we wont be able to see all the processes, hence why we are using the two classes I mentioned above instead.

After that we need to create our foreach loop which will help us get the information for each process we find and also a new listviewitem which we will be adding to our listview at the end of the loop so we can see the results.

For the sake of this tutorial we will only be concentrating in the process id/name/location and finally the description.