AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShutDown Problem

Ein Thema von CReber · begonnen am 13. Mär 2004 · letzter Beitrag vom 8. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

ShutDown Problem

  Alt 13. Mär 2004, 01:52
1: ExitWindowsEx(EWX_SHUTDOWN, 0);
2: ExitWindowsEx(EWX_REBOOT, 0);

Hab folgendes Problem... EWX_SHUTDOWN macht gar nix (genauso wie reboot) und FORCE meldet das system ab anstatt es runterzufahren ..

system:

winXP SP1 2002

kann mir da jemand helfen?
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ShutDown Problem

  Alt 13. Mär 2004, 02:11
Hast du dir auch vorher die Rechte geholt? Kuck dir dazu mal den entsprechenden Beitrag in der Code-Lib an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ShutDown Problem

  Alt 13. Mär 2004, 11:59
EWX_FORCE meldet aber immernoch nur ab ?! FORCE ist doch herunterfahren mit dem zusatz das speicherungsabfragen ignoriert werden oder?
Christian Reber
  Mit Zitat antworten Zitat
Der-DeeJay

Registriert seit: 11. Feb 2004
Ort: Reußenköge
45 Beiträge
 
#4

Re: ShutDown Problem

  Alt 13. Mär 2004, 12:35
Hi

Ich glaube du hast vergessen die Funktion zu benutzen

Delphi-Quellcode:
function ExWindows(const AQuestion: string; flag: word): Boolean;
var
  vi : TOSVersionInfo;
  hToken : THandle;
  tp : TTokenPrivileges;
  h : DWord;
begin
  result := false;
  if Aquestion='then
  vi.dwOSVersionInfoSize:=SizeOf(vi);
  GetVersionEx(vi);
  if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then
  begin
    // Windows NT
    // Achtung bei Delphi 2 muß @hToken stehen ...
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,hToken);
    LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
    tp.PrivilegeCount := 1;
    tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
    h := 0;
    AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^,h);
    CloseHandle(hToken);
    result := ExitWindowsEx(flag,0);
  end
  else
  begin
    Result := ExitWindowsEx(flag,0);
  end;
end;
und dann so benutzen:

Delphi-Quellcode:
ExWindows('', ewx_poweroff); //Beenden
ExWindows('', ewx_reboot ); //Neustart
ExWindows('', ewx_logoff ); //Logoff
bei mir hats so funktioniert
hoffe das es bei dir nun auch was wird ;]
>>> Ich traue jedem, Ich traue nur nich dem Teufel der in jedem steckt! <<<
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: ShutDown Problem

  Alt 7. Apr 2004, 22:55
Mal 'ne ganz blöde Frage:
Delphi-Quellcode:
If ...
.
.
.
    result := ExitWindowsEx(flag,0);
  end
  else // Windows 95
  begin
    Result := ExitWindowsEx(flag,0);
  end;
end;
Kann man da "result := ExitWindowsEx(flag,0);" nicht auch außerhalb der If-Abfrage machen? Schließlich unterscheidet sich der Code insofern überhaupt nicht.
Alex Winzer
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: ShutDown Problem

  Alt 8. Apr 2004, 00:19
Zitat von hOnkibOnk:
EWX_FORCE meldet aber immernoch nur ab ?!
Weil es ein zusätzliches Flag ist.
EWX_SHUTDOWN or EWX_FORCE // or = das Ergebnis enthält die Bits beiden Operanden
(Zu gut Deutsch 'Erzwinge das Herunterfahren'. EWX_REBOOT or EWX_FORCE bedeutet dann logischerweise 'Erzwinge einen Neustart')
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: ShutDown Problem

  Alt 8. Apr 2004, 07:30
Zitat von Schwedenbitter:
Mal 'ne ganz blöde Frage: [...] Kann man da "result := ExitWindowsEx(flag,0);" nicht auch außerhalb der If-Abfrage machen? Schließlich unterscheidet sich der Code insofern überhaupt nicht.
Klar, kann man. Ich benutze bspw. eine komplett separate Funktion zum Holen oder Abschalten der Rechte. Die sieht im Prinzip so aus wie die Vorlage von Der-DeeJay, nur der Code zum Herunterfahren fehlt. Es wäre ja möglich, dass man auch für andere Zwecke mal bestimmte Rechte benötigt.
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#8

Re: ShutDown Problem

  Alt 11. Apr 2004, 22:44
wenn es nur unter windows xp funktionieren soll/kann kannst du folgendes machen:
ShellExecute(Handle, 'open', 'shutdown.exe', '-r -t 10 -c "Der Computer wird gleich neugestartet!" -f', nil, SW_SHOW); mfg
stefan
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: ShutDown Problem

  Alt 12. Apr 2004, 08:42
Bei allem Respekt, @StefanDP, aber es ist doch besser, den dafür vorgesehenen Befehl zu verwenden. Der funktioniert unter allen Windows-Versionen, nicht nur unter XP. Und das Abschreiben der Rechte-Funktion ist sicher auch nicht das Problem.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#10

Re: ShutDown Problem

  Alt 17. Mai 2006, 16:48
Also ExWindows() klappt ja soweit ganz gut ... nur seit "neuestem" giebt es ja die möglichkeit updates vor dem PowerOff zu installieren.
(Start -> Herunterfahren -> Updates installieren und herunterfahren)

Wie kann ich das nun mit ExWindows() machen?
Wenn ich nur sporadisch die Updates installiere bekomm ich noch mal ärger ^^
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz