Hallo,
Zitat von
MrKnogge:
Gibt es "EWX_FORCEIFHUNG" nur für Windows2000 oder ab Windows2000?
nein,
, ab Windows 2000.
Also hier die zweite Version:
Code:
procedure MyExitWindows (E: TExit; force: boolean);
var
vi: TOSVersionInfo;
flag: integer;
begin
if e = EW_Garnicht then exit;
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;
if E = EW_herunterfahren then
ExitWindowsEx(EWX_ShutDown or flag, 0);
if E = EW_Ruhezustand then
SetSystemPowerState(false, Force);
if E = EW_Standby then
SetSystemPowerState(true, Force);
if E = EW_Abmelden then
ExitWindowsEx(EWX_LOGOFF or flag, 0);
if E = EW_Neustart then
ExitWindowsEx(EWX_REBOOT or flag,0);
end;
Tja, also ist die benutzung von
EWX_POWEROFF und
SetSystemPowerState
ähnlich, gleich, oder wie? hä?
Viele Grüße
Marco