如何完完全全关闭windows2000?

wzs 2001-11-27 04:49:33
以下是我抄来的一段关闭win2000的程序,虽然能关,但我觉得美中不足,在程序执行到最后就会出现"您可以安全关闭计算机了"我还得按POWER才能把电源关了,这种是机箱不是ATX的才出现的问题,但我这台是ATX的啊,不知哪位高人会把真正的电源也关闭?
procedure ShutDown;
const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
var hToken : THandle;
tkp : TTokenPrivileges;
tkpo : TTokenPrivileges;
zero : DWORD;
begin
zero := 0;
if not OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, hToken) then
begin
MessageBox( 0, 'Exit Error', 'OpenProcessToken() Failed', MB_OK );
Exit;
end;
if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid ) then
begin
MessageBox( 0, 'Exit Error', 'LookupPrivilegeValue() Failed', MB_OK );
Exit;
end;
if not LookupPrivilegeValue( nil, 'SeShutdownPrivilege' , tkp.Privileges[ 0 ].Luid ) then
begin
MessageBox( 0, 'Exit Error', 'LookupPrivilegeValue() Failed', MB_OK );
Exit;
end;
tkp.PrivilegeCount := 1;
tkp.Privileges[ 0 ].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, False, tkp, SizeOf( TTokenPrivileges ), tkpo, zero );
if Boolean( GetLastError() ) then
begin
MessageBox( 0, 'Exit Error', 'AdjustTokenPrivileges() Failed', MB_OK );
Exit;
end;
ExitWindowsEx(EWX_SHUTDOWN,0);
end;
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn72 2001-11-27
  • 打赏
  • 举报
回复
是机器电源设置的问题,重新设置一下高级电源管理
「已注销」 2001-11-27
  • 打赏
  • 举报
回复
我也抄过的

怎么就行呢

可惜代码现在不在我手头上

不知道和你抄得是不是一个地方的……

先帮你UP吧
wzs 2001-11-27
  • 打赏
  • 举报
回复
这个电源没设置有关吗?那我在WIN2000为何能够直接关闭?
yunfeifan 2001-11-27
  • 打赏
  • 举报
回复
是你的电源没有设置吧?

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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