private void CheckService() { ServiceController[] services = null; try { services = ServiceController.GetServices(); } catch (Exception ex) { logger.Error(ex, $"CheckService"); Status = ServiceHelperStatusEnum.GotError; } var service = services.FirstOrDefault(s => s.DisplayName == "Celsus Worker Service"); if (service != null) { ServiceControllerStatus = service.Status; Status = ServiceHelperStatusEnum.Installed; try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Service Where Name = 'CelsusWorkerService'"); ManagementObjectCollection collection = searcher.Get(); foreach (ManagementObject obj in collection) { string name = obj["Name"] as string; string pathName = obj["PathName"] as string; if (name == "CelsusWorkerService") { if (pathName.IndexOf('"') >= 0) { var path = pathName.Split('"')[1]; if (File.Exists(path) == false) { Status = ServiceHelperStatusEnum.InstalledButFileNotFound; } } } } } catch (Exception ex) { logger.Error(ex, $"GetServicePath error."); } } else { ServiceControllerStatus = null; Status = ServiceHelperStatusEnum.NotInstalled; } }
private void CheckAll() { CheckService(); if (Status == ServiceHelperStatusEnum.Installed) { if (CheckVersion()) { Status = ServiceHelperStatusEnum.Ok; } else { Status = ServiceHelperStatusEnum.InstalledButOld; } } }