如何知道WIN2003的关机动作是要重新启动系统还是要关机,我需要针对不同的情况进行处理。
解决方案 »
- 新手学delphi,没什么基础,悟性一般,求大神指教
- EVariantInvalidArgError Invalid argument
- DELPHI中用WEBBROWSER打开PDF,急!!!!!!!!!急!!!!!!!
- 付费求助:PDF阅读器 光盘 加密狗
- 如何使按下Enter(回车)键后使焦点自动跳到窗体上的下一个控件上?
- 想设计一个小的数字键盘?
- DBGRID显示了存储过程得来的数据,能不能给DBGRID增加这样一列:该列可以由用户输入字符
- 关于delphi 补丁的问题(100分)很简单吧
- 谁知道如何创建控件组(大量控件)并能使他们被用户拖动?
- 限制窗口!
- 问几个打印和保存的问题
- tttk(网络芝麻)前来领分
var EWX_SHUTDOWN,EWX_FORCE:integer;
VerInfo: TOSVersionInfo;
hToken: THANDLE;
tkp: TOKEN_PRIVILEGES;
Nothing: Cardinal;begin
EWX_SHUTDOWN:=1;
EWX_FORCE:=4;begin
VerInfo.dwOSVersionInfoSize := SizeOf(VerInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
hToken);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, Nothing);
end;
ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN + EWX_POWEROFF, 0);
end;EXITWINDOWSEX(EWX_POWEROFF,0);
EXITWINDOWSEX(EWX_FORCE OR EWX_SHUTDOWN,0);
end;