views:

32

answers:

2

Is there an easy way to detect whether the messaging component is installed and the service is running in Windows using C#?

A: 

http://weblogs.asp.net/rosherove/archive/2003/09/24/28864.aspx

There's a code snippet to get a list of installed programs.

Robert Greiner
+1  A: 

Checking for the existence of the service, and its status, could be accomplished by executing a WMI query:

// Setup the query
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
                    "SELECT * FROM Win32_Service WHERE Name = 'Blah'");

// Execute the query and enumerate the objects
foreach (ManagementObject queryObj in searcher.Get())
{
   // examine the query results to find the info you need.  For example:
    string name = (string)queryObj["Name"];
    bool started = (bool)queryObj["Started"];
    string status = (string)queryObj["Status"];
}

For more info on the WMI Win32_Service class, see here.

Odrade