在windows2000 如何实现关机

gmy 2002-04-04 01:36:55
我想在widows2000 里实现关机,应该用什么方法来获得关机权限
用ExitWindowsEx(1,0) 在windows 2000里实现不了关机,在windows98/ME里面就行。
...全文
27 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcaiyao 2002-04-04
  • 打赏
  • 举报
回复
上面的代码是重启,关机请用:
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0))

kingcaiyao 2002-04-04
  • 打赏
  • 举报
回复
看下面这段代码,这段代码已经说得很清楚:
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
Application->MessageBox("OpenProcessToken Error!","Error",MB_OK+MB_ICONERROR);
return;
}
if(!LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid))
{
Application->MessageBox("LookupPrivilegeValue Error!","Error",MB_OK+MB_ICONERROR);
return;
}
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);

if(GetLastError()!=ERROR_SUCCESS)
{
Application->MessageBox("AdjustTokenPrivileges Error","Error",MB_OK+MB_ICONERROR);
return;
}

if(!ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0))
{
Application->MessageBox("ExitWindowEx Error!","Error",MB_OK+MB_ICONERROR);
return;
}
AdjustTokenPrivileges(hToken,TRUE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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