C# 代码实现关机
AdvApi32.LookupPrivilegeValue(null, "SeShutdownPrivilege", out var lpLuid);
using var t = AdvApi32.SafeHTOKEN.FromThread(Kernel32.SafeHTHREAD.Current,
AdvApi32.TokenAccess.TOKEN_ADJUST_PRIVILEGES | AdvApi32.TokenAccess.TOKEN_QUERY);
var ptp = new AdvApi32.TOKEN_PRIVILEGES(luid:lpLuid, AdvApi32.PrivilegeAttributes.SE_PRIVILEGE_ENABLED);
AdvApi32.AdjustTokenPrivileges(t,false,ptp,out var old);
User32.ExitWindowsEx(User32.ExitWindowsFlags.EWX_POWEROFF | User32.ExitWindowsFlags.EWX_FORCE,
SystemShutDownReason.SHTDN_REASON_MAJOR_NONE);
需要在nuget上下载:
Vanara.PInvoke.Kernel32
Vanara.PInvoke.User32
Vanara.PInvoke.Security
作者:芝麻麻雀
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。