如何在delphi中用语言实现控制计算机重启?
谢谢大家
谢谢大家
解决方案 »
- 求助:找控件属性。。。
- 如何将方框内的项全部选中?
- 一个TADOQuery查询到空记录集后,不能Close,如果进行下次查询?
- 窗口问题!!! 谢谢
- 请问大家,如何用ado连接oracle!
- 如何在不打Delphi补丁的情况下,编译以前打过补丁下写的程序?
- 在"*.bmp"图片保存到Access中时出现的错误怎样解决?帮看一下源代码!
- 关于PopupMenu很菜的问题
- 怎样根据ascii得到相应的字符?反过来又怎样?
- 极菜问题!TButton怎样改变背景图片?
- 问题没解决,再问:如何在delphi下如何将一简体字符串转换为繁体!高手帮忙!
- 这样调用C的Dll对不对?200分,解决的另开帖加分 !
重启:ExitWindowsEx(EWX_REBOOT,2)
//作者: 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;