private void ExecutePowerAction(string choosenAction) { ExceptionHandler.LogEvent("[Countdown] Executing power action"); ignoreClose = false; // do not ignore close event allowClose = true; // disable close question switch (choosenAction) { case "Shutdown": ExitWindows.Shutdown(!Graceful); break; case "Restart": ExitWindows.Reboot(!Graceful); break; case "Hibernate": Application.SetSuspendState(PowerState.Hibernate, false, false); break; case "Sleep": Application.SetSuspendState(PowerState.Suspend, false, false); break; case "Logout": ExitWindows.LogOff(!Graceful); break; case "Lock": ExitWindows.Lock(); break; case "Custom Command": Process.Start(Command); break; } if (PreventSystemSleep) { ExceptionHandler.LogEvent("[Countdown] Clearing EXECUTION_STATE flags"); ExecutionState.SetThreadExecutionState(ExecutionState.EXECUTION_STATE.ES_CONTINUOUS); // Clear EXECUTION_STATE flags to allow the system to go to sleep if it's tired. } }
private void RestoreRP_Click(object sender, RoutedEventArgs e) { MessageBoxResult result; SystemRestorePoint SelectedItem = (SystemRestorePoint)listView.SelectedItem; if (SelectedItem == null) { MessageBox.Show("请选择一个系统还原点", "NWSRMgr"); } else { int RPNum = SelectedItem.SequenceNumber; result = MessageBox.Show( "确定从还原点" + RPNum.ToString() + "还原", "NWSRMgr", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No, MessageBoxOptions.DefaultDesktopOnly); if (result == MessageBoxResult.Yes) { if (SR.RestoreFromRestorePoint(RPNum)) { result = MessageBox.Show( "系统还原成功,是否重启电脑以继续", "NWSRMgr", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No, MessageBoxOptions.DefaultDesktopOnly); if (result == MessageBoxResult.Yes) { ExitWindows.Reboot(); } } else { MessageBox.Show("系统还原失败", "NWSRMgr"); } } } }