怎样在DELPHI中使用WIN32API的关机函数ExitWindowsEx()

阿李 2002-11-28 08:52:11
请教大虾:
在DELPHI中使用ExitWindowsEx()时(win2k下),好象执行失败,机器没有反映,
我也看了API帮助说要有SE_SHUTDOWN_NAME属性的权限,
但我不知道怎么调用AdjustTokenPrivilege!

Gl202@163.net

thankS
...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liujc 2002-11-28
  • 打赏
  • 举报
回复
var
hToken :THandle ;
tkp :TOKEN_PRIVILEGES ;
otkp :TOKEN_PRIVILEGES ;
dwLen :Dword ;
begin
if OpenProcessToken(GetCurrentProcess ,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY ,hToken) then
begin
LookupPrivilegeValue(Nil ,'SeShutdownPrivilege' ,tkp.Privileges[0].Luid) ;
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken ,False ,tkp ,sizeof(tkp) ,otkp ,dwLen) ;
if (GetLastError() <> ERROR_SUCCESS) then
begin
Showmessage'AdjustTokenPrivileges enable failed.');
end else
begin
ExitWindowsEx(EWX_POWEROFF ,0) ;
end ;
end
end;

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧