Entwickler-Ecke
Dateizugriff - Computer herunterfahren (JvCreateProcess, ShellOpen, ...)
Goaznic - Mo 14.11.11 11:01
Titel: Computer herunterfahren (JvCreateProcess, ShellOpen, ...)
Hi.
Kennt sich zufällig jemand mit der Jedi-Komponente JvCreateProcess aus?
Ich habe folgendes Ziel:
Der Computer soll nach einer bestimmten Zeit oder zu einer bestimmten Uhrzeit heruntergefahren werden.
Mein Ausbilder hat mir nun als Tipp "JvCreateProcess" und ShellOpen, möglich sind aber sicherlich auch andere Wege.
Diese beiden soll ich aber einfach mal testen.
Bei dem JvCreateProcess bin ich so weit, dass er mir die cmd.exe öffnet - war ja nicht schwer, einfach unter "CommandLine" den entsprechenden Link eingeben.
Unter "ConsoleOptions" habe ich "coOwnerData" auf True gesetzt.
Wenn ich nun aber eingebe: Shutdown -s -f -t60 ,dann passiert nichts. es kommt lediglich eine Info, die dieser hier ähnlich ist:
(hab nicht wirklich viel Ahnung davon)
Muss ich bei "CurrentDirectory" vielleicht einen anderen Link angeben? Oder muss ich eventuell sogar etwas anderes eingeben?
Der Ausbilder meinte auch, man könne sich das alles irgendwie in einem Memo anzeigen lassen, indem man "CoRedirect" auf true setzt.
Ich steh noch ziemlich auf'm Schlauch. :/
Und zu ShellOpen kann ich irgendwie gar nichts finden.
Ideen, wie man das sonst noch realisieren könnte, nehme ich auch gerne an.
Moderiert von
Narses: Bild als Anhang hochgeladen.
Delete - Mo 14.11.11 11:48
Und was liefert die Forensuche nach "windows runterfahren"?
Goaznic - Mo 14.11.11 11:58
Luckie hat folgendes geschrieben : |
Und was liefert die Forensuche nach "windows runterfahren"? |
Da finde ich als Alternative dieses "ExitWindowsEx". Da hab ich auch etwas in einem Buch zu stehen. Muss ich mir mal anschauen.
Und ich finde auch noch "ShellExecute". Das ist dann bestimmt dieses ShellOpen, oder?
Aber am wichtigsten ist mir immer noch JvCreateProcess. Und da finde ich leider nichts zu, was mir hilft. Vielleicht bin ich auch einfach grade zu doof. :D
Gausi - Mo 14.11.11 12:12
Alles, was ich zu dem Thema gelesen habe war: Lieber die API (ExitWindowsEx) dazu nutzen, als irgendwelche anderen Programme wie z.B. shutdown.exe. Hat wohl auch damit zu tun, dass der Weg über shutdown.exe nur dann funktioniert, wenn der User als Administrator angemeldet ist. Das ist spätestens seit Vista ein absolutes No-Go.
Warum jetzt zum Starten der shutdown.exe jetzt noch was aus einer zusätzlichen Komponentensammlung benutzt werden soll, ist mir absolut schleierhaft. Wozu soll das gut sein? :gruebel:
Goaznic - Mo 14.11.11 12:18
Ok, wenn "ExitWindowsEx" eure Empfehlung ist, dann werd ich das mal versuchen.
Falls mir Fragen aufkommen sollten melde ich mich hier wieder zu Wort. =)
LSanchez - Mo 14.11.11 12:19
Ich benutze einfach ShellExecute
Delphi-Quelltext
1:
| ShellExecute(Application.Handle,'open', 'shutdown.exe', '-r -t 01 -f', nil, SW_SHOWNORMAL) ; |
Delete - Mo 14.11.11 12:39
LSanchez hat folgendes geschrieben : |
Ich benutze einfach ShellExecute
Delphi-Quelltext 1:
| ShellExecute(Application.Handle,'open', 'shutdown.exe', '-r -t 01 -f', nil, SW_SHOWNORMAL) ; | |
Du hast aber gelesen, was Gausi dazu geschrieben hat? Dein Programm wird bei mir nicht funktionieren. Mein Rechner hat Windows XP und ich arbeite generell nur als einfacher Benutzer. shutdown.exe benötigt aber administrative Rechte. Und die werde ich deinem Programm für so etwas ganz bestimmt nicht geben.
baka0815 - Mo 14.11.11 12:50
Abgesehen davon verwendet ihr UNIX/LINUX Notation für die Parameter, Windows benötigt hier Schrägstriche "/" statt der Bindestriche "-"!
Also nicht -r -t 01 -f, sondern /r /t 01 /f
Delete - Mo 14.11.11 12:56
Unter Windows kann man beides nehmen bei Microsoft Programmen, glaube ich.
Goaznic - Di 15.11.11 11:14
Ist
Delphi-Quelltext
1:
| ExitWindowsEx(EWX_SHUTDOWN,0); |
alles, was ich eingeben muss? Quasi als Befehl, wenn ich auf einen Button Klick z.B.?
Goaznic - Di 15.11.11 11:52
Oh, danke! Das ist super, genau sowas hab ich den ganzen Morgen gesucht! :)
Goaznic - Fr 18.11.11 10:46
Okay, also nach derzeitigem Stand werde ich die Aufgabe mit allen drei möglichen Wegen lösen.
Um hier nicht allzu viel Chaos rein zu bringen, kurz ein Zwischenbericht:
ExitWindowsEx: Hierzu habe ich nun bereits eine super Beschreibung erhalten (vielen Dank nochmal an Gausi!) und ich habe dazu auch noch etwas in einem Delphi-Kochbuch stehen. Das sollte also genug an Infos sein - ein bisschen was kann ich mir ja auch selbst beibringen.
(JvCreateProcess: Arbeite ich - wenn überhaupt - ganz am Schluss mit.)
ShellExecute: Frage hierzu: Wenn die Zeit bis zum Shutdown variabel sein soll ... Kann man das irgendwie da mit einbauen? Oder muss ich dass dann über einen Timer laufen lassen (dann würde er, nachdem der Timer abgelaufen ist, sofort Shutdown starten)?
Delete - Fr 18.11.11 15:08
InitiateSystemShutdownEx gibt es schon seit Windows 2000. Damit lässt sich auch ein Rechner remote runterfahren. Und was das Konsolenprogramm Shutdown angeht, einfach mal in der Konsole aufrufen und sich die Hilfe dazu durchlesen.
JuniorProgrammierer86 - Mi 01.02.12 18:37
hast du es jetzt hinbekommen?? stehe nämlich im studium vor dem selben schlamassel!! hehe
jaenicke - Mi 01.02.12 19:35
Was hast du denn versucht? Hast du die API-Funktionen versucht?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!