计算机重启

heaven765 2003-08-29 10:58:40
如何在delphi中用语言实现控制计算机重启?
谢谢大家
...全文
18 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsy_good 2003-08-29
  • 打赏
  • 举报
回复
//说明: 我就是在ExitWindowsEx外面在包裹了一层,使它支持98,2000了
//作者: zsy_good
//时间: 2002-12-16
//使用
ExitWindowsExEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
ExitWindowsExEx(EWX_REBOOT, 0);

procedure ExitWindowsExEx(uFalgs: UINT;dwReserved :DWORD);
const
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
var
VerInfo: TOSVersionInfo;
hToken: THandle;
tp: TTokenPrivileges;
iRlen: Cardinal;
begin
VerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then //如果是WinNT
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
tp.PrivilegeCount := 1;
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tp, 0, nil, iRlen);
end;
ExitWindowsEx(uFalgs,dwReserved);
end;
sy_315 2003-08-29
  • 打赏
  • 举报
回复
关机:ExitWindowsEx(EWX_SHUTDOWN and EWX_POWEROFF ,1);
重启:ExitWindowsEx(EWX_REBOOT,2)

5,388

社区成员

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

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