C# Windows系统一键关机源代码,可移植(复制粘贴)到的自己的项目中
csharp
using System;
using System.Windows;
using System.Windows.Threading;
namespace 关机
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
/// <summary>
/// 关机定时
/// </summary>
private DispatcherTimer shutdown;
public MainWindow()
{
InitializeComponent();
WindowStartupLocation = WindowStartupLocation.CenterScreen;
shutdown = new DispatcherTimer();
shutdown.Tick += new EventHandler(ShowCurTimer);
shutdown.Interval = new TimeSpan(0, 0, 0, 1, 0);
shutdown.Start();
try{
}
catch (Exception){
//this.Dispatcher.Invoke(new Action(delegate { this.Close(); }));
}
}
#region 执行关机
public void ShowCurTimer(object sender, EventArgs e){
关机();
}
private void 关机(){
System.Diagnostics.ProcessStartInfo ps = new System.Diagnostics.ProcessStartInfo();
ps.FileName = "shutdown.exe";
ps.Arguments = "-s -t 1"; System.Diagnostics.Process.Start(ps);
}
#endregion
}
}
布局
csharp
<Window x:Class="关机.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:关机"
mc:Ignorable="d"
Title="MainWindow" Height="108" Width="377" WindowStyle="None" AllowsTransparency="True" ShowInTaskbar="True" Background="{x:Null}" >
<Grid>
<Grid.Background>
<ImageBrush/>
</Grid.Background>
<!--时间-->
<Label Content="正在关机。。。" FontSize="35" Foreground="#FF02F3FF" HorizontalAlignment="Left" Margin="78,24,0,0" VerticalAlignment="Top" Height="74" Width="249"/>
</Grid>
</Window>