Пример #1
0
        public static ServiceState GetServiceStatus(string ServiceName)
        {
            ServiceState serviceStatus;
            IntPtr       intPtr = ServiceInstaller.OpenSCManager(ServiceManagerRights.Connect);

            try
            {
                IntPtr intPtr1 = ServiceInstaller.OpenService(intPtr, ServiceName, ServiceRights.QueryStatus);
                if (intPtr1 != IntPtr.Zero)
                {
                    try
                    {
                        serviceStatus = ServiceInstaller.GetServiceStatus(intPtr1);
                    }
                    finally
                    {
                        ServiceInstaller.CloseServiceHandle(intPtr);
                    }
                }
                else
                {
                    serviceStatus = ServiceState.NotFound;
                }
            }
            finally
            {
                ServiceInstaller.CloseServiceHandle(intPtr);
            }
            return(serviceStatus);
        }