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.
            }
        }
示例#2
0
        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");
                    }
                }
            }
        }