C#如何控制Windows关机

去年做了一个小工具,其中有一个功能是定时关机,当时小工具使用C#编写。关机代码如下

public static void ShutdownComputer()
{
    System.Diagnostics.Process.Start("shutdown.exe", "-s");//关机
}

之所以选择使用命令行,主要考虑到实现简单,兼容性好,比起纯代码调用win API方便多。

附带用API实现的代码,有些Windows版本不行。

public static void ShutdownComputer2()
{
	ManagementBaseObject mboShutdown = null;
	ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem");
	mcWin32.Get();

	// You can't shutdown without security privileges
	mcWin32.Scope.Options.EnablePrivileges = true;
	ManagementBaseObject mboShutdownParams =
			 mcWin32.GetMethodParameters("Win32Shutdown");

	// Flag 1 means we want to shut down the system. Use "2" to reboot.
	mboShutdownParams["Flags"] = "1";
	mboShutdownParams["Reserved"] = "0";
	foreach (ManagementObject manObj in mcWin32.GetInstances())
	{
		mboShutdown = manObj.InvokeMethod("Win32Shutdown", mboShutdownParams, null);
	}
}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值