Autor Beitrag
Lennske
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 17.10.02 16:21 
Ich habe einen Button gemacht mit dem man Windows beenden kann
ich habe dazu mit diesem code hantier
ausblenden Quelltext
1:
2:
3:
4:
5:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ShellExecute(Application.Handle,'open',PChar('shutdown'),nil,PChar('c:\windows\system32\shutdown.exe'),sw_ShowNormal);

end;

Aber man muss ja die shutdown exe zum beispiel so ausführen damit es funktioniert:
C:\Windows\System32\SHUTDOWN.exe -s -t 00 -f (Rechner wird sofort herunter gefahren, aber alle Programme werden vorher beendet) .
Ich weiß nun aber nicht wie ich diese angehängten Buchstaben in den code screiben soll damit der Compiler das richtig interpretiert .

Lennske :D


Danke, im voraus
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 17.10.02 16:29 
Such mal hier im Forum. Da solltest du einiges finden, wenn es nicht sogar schon in den FAQ steht.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 17.10.02 18:08 
Windows herunterfahren und den Befehl "shutdown" benutzen?
Woher kenne ich das denn nur? :wink:
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 17.10.02 19:22 
Was macht ihr eigentlich den ganzen Tag. Forum1 dann Forum2 dann Forum3 dann Forum4 dann Forum5 dann weiter mit Forum1? Ihr seit ja in allen Foren vertreten. Habt ihr da noch Zeit für das Liebesleben? :wink:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 18.10.02 02:13 
Na ja, kennst du nicht das NDW Lied "Computerliebe"? :wink:

Hm, Delphi-Praxis, Coder-Area, Auq.de, Spotlight. Reicht würde ich sagen.
Wiesenbiber
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18



BeitragVerfasst: Fr 18.10.02 09:09 
Wäre vielleicht auch hilfreich, wenn du mal sagen könntest welche windows version du benutzt.

Deinem Code nach müsste es Windows95/98 sein, oder?

_________________
Gruß
Chris
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 18.10.02 09:49 
Nein, die "shutdown.exe" gibt´s bei mir unter Win98 nicht. Und der Pfad "windows/system32" legt auch die Vermutung nahe, dass es ein NT-System (NT, 2000, XP) ist.
Wenn man stattdessen den Befehl ExitWindowsEx benutzt (dazu findet man 100% was im Forum), dann muss man sich a) keine Gedanken wg. dieser "shutdown.exe" machen, b) es funktioniert unter allen Windows-Versionen, aber mit der Einschränkung c) dass man sich unter NT-Systemen erst die passenden Rechte holt.

Der Aufruf
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
ShellExecute(Application.Handle,
 'open',
 PChar('shutdown'),
 nil,
 PChar('c:\windows\system32\shutdown.exe'),
 sw_ShowNormal);

ist ohnehin Quark, weil die Parameter nicht übereinstimmen. Wenn schon, dann wäre wohl:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
ShellExecute(self.Handle,
  'open',
  'c:\windows\system32\shutdown.exe', // Programm
  '-s -t 00 -f', // Parameter
  nil, // Arbeitsverzeichnis
  SW_SHOWNORMAL);

(inkl. der von Lennske am Anfang erwähnten Parameter) richtig. Aber wer sagt, dass jeder Anwender sein Windows im Ordner "c:\windows" installiert hat? Auch dafür gibt es passende Funktionen, etwa GetSystemDirectory (dann ist man auch gleich da, wo man in dem Fall hin will). Und dann sollte man bei diesem Versuch wie obigem Code mit fileexists prüfen, ob das Programm überhaupt existiert.

Fazit: ExitWindowsEx ist die weitaus elegantere Variante.


Zuletzt bearbeitet von MathiasSimmack am Fr 18.10.02 09:59, insgesamt 1-mal bearbeitet
Lennske Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 18.10.02 09:54 
Ich frag dass ja nur weil ich noch ein delphi newbie bin ok mit der suchfunktion werd ich in zukunft vorher suchen und das mit den parametern war ja meine eigentliche Frage.


Danke, an allen die geantwortet haben.

Lennske :)