繁体中文
设为首页
加入收藏
当前位置:程序开发首页 >> Visual C++ >> 在98,NT及2000上重新启动机器

在98,NT及2000上重新启动机器

2008-03-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:如下是源码,其实在98上只用最后一句ExitWindowEx即可,前面是为了取得权限. TOKEN_PRIVILEGES tkp,tkpNewButIgnored; HANDLE hdlTokenHandle; LUID tmpLuid; BOOL rc; DWORD lBufferNeeded; HANDLE hdlProcess...
关键字:重新 机器 2000 NT 98

如下是源码,其实在98上只用最后一句ExitWindowEx即可,前面是为了取得权限.

TOKEN_PRIVILEGES tkp,tkpNewButIgnored;

HANDLE hdlTokenHandle;

LUID tmpLuid;

BOOL rc;

DWORD lBufferNeeded;

HANDLE hdlProcessHandle = GetCurrentProcess();

rc = ::OpenProcessToken(hdlProcessHandle,TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,

&hdlTokenHandle);

rc = LookupPrivilegeValue("","SeShutdownPrivilege", &tmpLuid);

tkp.PrivilegeCount = 1; // One privilege to set

tkp.Privileges[0].Luid = tmpLuid;

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

rc = ::AdjustTokenPrivileges(hdlTokenHandle,

FALSE,

&tkp,

sizeof(tkpNewButIgnored),

&tkpNewButIgnored,

&lBufferNeeded);

ExitWindowsEx(EWX_REBOOT,0);

责任编辑:admin
相关文章