怎样用Delphi7.0编关机程序?

来源:百度知道 编辑:UC知道 时间:2024/07/04 20:09:25

98系统下用exitwindowsex挺好,在2000,XP,NT等已经加强内核安全性的操作系统下关机是
不太适合的。对后者,关键是要有管理员权限,如果无权限则不可避免用AdjustTokenPriv
ileges函数然后调用InitiateSystemShutdown关机比较妥当,下面是我调试通过的2000/x
p/Nt自动关机代码,你自己试试。若要扩展到98自己在加判断是98操作系统执行exitwind
owsex的代码。
implementation

{$R *.dfm}
{判断是哪类操作系统,以确定关机方式}
function GetOperatingSystem: Boolean;
var osVerInfo: TOSVersionInfo;
begin
Result :=False;
osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
if GetVersionEx(osVerInfo) then
case osVerInfo.dwPlatformId of
VER_PLATFORM_WIN32_NT:
begin
Result := True;
end;
VER_PLATFORM_WIN32_WINDOWS:
begin
Result := False;
end;
end;
end;

{获得计算机名}
function GetComputerName: string;
var
buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
Size: Cardinal;
begin
Size := MAX_COMPUTERNAME_LENGTH