盾怪网教程:是一个免费提供流行杀毒软件教程、在线学习分享的学习平台!

关闭计算机就这几招

时间:2024/12/23作者:未知来源:盾怪网教程人气:

[摘要]TOKEN_QUERY, &hToken)) ErrorHandler("OpenProcessToken failed."); // Get the LUID for ...
TOKEN_QUERY, &hToken))

ErrorHandler("OpenProcessToken failed.");

// Get the LUID for shutdown privilege.

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);

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

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get shutdown privilege for this process.

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,



(PTOKEN_PRIVILEGES) NULL, 0);

// Cannot test the return value of AdjustTokenPrivileges.

if (GetLastError() != ERROR_SUCCESS)

ErrorHandler("AdjustTokenPrivileges enable failed.");

// Display the shutdown dialog box and start the time-out countdown.

fResult = InitiateSystemShutdown( NULL, // shut down local computer

"Click on the main window and press \

the Escape key to cancel shutdown.", // message to user

20, // time-out period

FALSE, // ask user to close apps

TRUE); // reboot after shutdown


if (!fResult)


{

ErrorHandler("InitiateSystemShutdown failed.");

}
// Disable shutdown privilege.


tkp.Privileges[0].Attributes = 0;


AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,


(PTOKEN_PRIVILEGES) NULL, 0);


if (GetLastError() != ERROR_SUCCESS)


{

ErrorHandler("AdjustTokenPrivileges disable failed.");

}

---------------------------------------------------------------------------------------------
而使用AbortSystemShutoown取消InitialSystemShutdown操作的代码如下(记住要在延时结束前执行才能起作用


// Get the current process token handle so we can get shutdown

// privilege.


if (!OpenProcessToken(GetCurrentProcess(),

TOKEN_ADJUST_PRIVILEGES

关键词:关闭计算机就这几招




Copyright © 2012-2018 盾怪网教程(http://www.dunguai.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版