public WatchFolderServiceViewModel(SettingsServiceClient client) { _client = client; _selectedWatchFolderSettings = null; AddWatchFolderCommand = new DelegateCommand(AddWatchFolder, CanAddWatchFolder); RemoveWatchFolderCommand = new DelegateCommand(RemoveWatchFolder, CanRemoveWatchFolder); EditWatchFolderCommand = new DelegateCommand(EditWatchFolder, CanEditWatchFolder); }
public MainWindow() { InitializeComponent(); try { EventQuery eventQuery = new EventQuery(); eventQuery.QueryString = string.Format("SELECT * FROM __InstanceModificationEvent within 2 WHERE targetinstance isa 'Win32_Service' and targetinstance.name = '{0}'", ServiceName); EventWatcher = new ManagementEventWatcher(eventQuery); EventWatcher.Options.Timeout = new TimeSpan(1, 0, 0); EventWatcher.EventArrived += new EventArrivedEventHandler(eventWatcher_EventArrived); EventWatcher.Start(); ServiceController = new ServiceController(); ServiceController.ServiceName = ServiceName; lblServiceStatus.Content = ServiceController.Status.ToString(); if (ServiceController.Status == ServiceControllerStatus.Running) { WindowsServiceReference = new SettingsServiceClient(); lblCurrentOutputMessage.Content = WindowsServiceReference.GetOutputMessage(); } changeBtnState(); } catch (Exception ex) { lblError.Content = ex.Message; btnStartService.IsEnabled = false; btnStopService.IsEnabled = false; btnRestartService.IsEnabled = false; txtNewOutputMessage.IsEnabled = false; btnChangeOutputMessage.IsEnabled = false; } }
void eventWatcher_EventArrived(object sender, EventArrivedEventArgs e) { ManagementBaseObject targetInstance = ((ManagementBaseObject)e.NewEvent["targetinstance"]); PropertyData state = targetInstance.Properties["state"]; this.Dispatcher.Invoke((Action)(() => { lblServiceStatus.Content = state.Value.ToString(); btnStartService.IsEnabled = state.Value.ToString() == ServiceControllerStatus.Stopped.ToString(); btnStopService.IsEnabled = state.Value.ToString() == ServiceControllerStatus.Running.ToString(); btnRestartService.IsEnabled = state.Value.ToString() == ServiceControllerStatus.Running.ToString(); txtNewOutputMessage.IsEnabled = state.Value.ToString() == ServiceControllerStatus.Running.ToString(); btnChangeOutputMessage.IsEnabled = state.Value.ToString() == ServiceControllerStatus.Running.ToString(); if (state.Value.ToString() == ServiceControllerStatus.Running.ToString()) { WindowsServiceReference = new SettingsServiceClient(); lblCurrentOutputMessage.Content = WindowsServiceReference.GetOutputMessage(); ServiceController = new ServiceController(); ServiceController.ServiceName = ServiceName; } else { lblCurrentOutputMessage.Content = string.Empty; } })); }
private void BackgroundWorkerDoWork(object sender, DoWorkEventArgs e) { e.Result = new FindServiceResult { EndpointAddresses = SettingsServiceClient.FindService().ToList() }; }