您可以通过调用API函数ExitWindowEx来实现关机,示例如下:
[StructLayout(LayoutKind.Sequential, Pack=1)]
internal struct TokPriv1Luid
{
public int Count;
public long Luid;
public int Attr;
}
[DllImport("kernel32.dll", ExactSpelling=true) ]
internal static extern IntPtr GetCurrentProcess();
[DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true) ]
internal static extern bool OpenProcessToken( IntPtr h, int acc, ref IntPtr phtok );
[DllImport("advapi32.dll", SetLastError=true) ]
internal static extern bool LookupPrivilegeValue( string host, string name, ref long pluid );
[DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true) ]
internal static extern bool AdjustTokenPrivileges( IntPtr htok, bool disall,
ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen );
调用API函数实现关机
最新推荐文章于 2020-12-06 21:45:49 发布
本文介绍了如何通过调用API函数ExitWindowEx并结合其他内核及安全相关的API来实现计算机的关机操作。示例代码中详细展示了获取进程权限、设置关机特权以及实际执行关机的步骤。
摘要由CSDN通过智能技术生成