| 积木首页 | 500多种网页特效 | 函数手册 | 广播电台 | 高清晰图片素材 | 服务器合租 | 万年历 | 网友最新浏览记录 |
| 程序开发 | ![]() |
网页设计 | ![]() |
搜索引擎 | ![]() |
特效代码 | ![]() |
操作系统 | ![]() |
防范病毒 | ![]() |
黑客技术 | ![]() |
图形图象 | ![]() |
电脑硬件 | ![]() |
网络技术 | ![]() |
服 务 器 | ![]() |
数 据 库 | ![]() |
网文精粹 |
uses
Windows;
function GetSysTypes: Boolean; // & 获取操作系统类型 &
function SetPrivilege(sPrivilegeName: AnsiString; bEnable: Boolean): Boolean; // & 设置权限 &
procedure ExitWin32Sys(iFlags: Integer); // & 执行注销、退出或重启系统的操作 &
implementation
function GetSysTypes: Boolean;
var
Ver: TOSVersionInfo;
begin
Result := False;
Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(Ver) then
if Ver.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
Result := True
else
Result := False;
end;
function SetPrivilege(sPrivilegeName: AnsiString; bEnable: Boolean): Boolean;
var
TPPrev, TP: TTokenPrivileges;
Token : THandle;
dwRetLen : DWord;
begin
Result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, Token);
TP.PrivilegeCount := 1;
if LookupPrivilegeValue(nil,PAnsiChar(sPrivilegeName),TP.Privileges[0].LUID) then
begin
if bEnable then
TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
TP.Privileges[0].Attributes := 0;
dwRetLen := 0;
Result := AdjustTokenPrivileges(Token, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen);
end;
CloseHandle(Token);
end;
procedure ExitWin32Sys(iFlags: Integer);
begin
if GetSysTypes then
ExitWindowsEx(iFlags,0)
else
if SetPrivilege('SeShutdownPrivilege',True) then
if not ExitWindowsEx(iFlags,0) then
SetPrivilege('SeShutdownPrivilege',False);
end;