Einzelnen Beitrag anzeigen

Marco Steinebach

Registriert seit: 4. Aug 2006
491 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: windows herunterfahren zusammengefaßt

  Alt 3. Feb 2008, 16:29
Hallo,
@Ringli: joa, hast recht, und das result wurde auch nirgends zugewiesen. Die Funktion für die Sperrung gibt's bei mir unter Delphi5 nicht, deshalbhab ich sie, erstmal, weggelassen.
Hier also das Ergebnis:
Code:
function MyExitWindows (E: TExit; force: boolean): boolean;
var
  vi: TOSVersionInfo;
  flag: integer;
begin
  if e = EW_Garnicht then
  begin
    result := true;
    exit;
  end;
  flag := 0;
  vi.dwOSVersionInfoSize:=SizeOf(vi);
  GetVersionEx (vi);
  if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then
    GetShutdownPrivileges;
    // die brauchen wir nur, wenn's mindestens Windows NT ist
  if Force then
  begin
    if (vi.dwPlatformId = VER_PLATFORM_WIN32_NT) and
       (vi.dwMajorVersion >=5) then
      flag := EWX_FORCEIFHUNG
      // geht ab Windows 2000
    else // also entweder NT oder gar windows 95/98/ME
      flag := EWX_FORCE;
  end;
  case e of
    EW_herunterfahren: result := ExitWindowsEx (EWX_ShutDown or flag, 0);
    EW_Ruhezustand: result := SetSystemPowerState (false, Force);
    EW_Standby: result := SetSystemPowerState (true, Force);
    EW_Abmelden: result := ExitWindowsEx (EWX_LOGOFF or flag, 0);
    EW_Neustart: result := ExitWindowsEx (EWX_REBOOT or flag,0);
  else
    result := false;
  end;
end;
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat