Autor |
Beitrag |
Goaznic
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Mo 14.11.11 11:01
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.
Einloggen, um Attachments anzusehen!
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 14.11.11 11:48
Und was liefert die Forensuche nach "windows runterfahren"?
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: 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. 
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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? 
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: Goaznic
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: 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
      
Beiträge: 26
Erhaltene Danke: 8
|
Verfasst: 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) ; |
Für diesen Beitrag haben gedankt: Goaznic
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 14.11.11 12:39
|
|
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: 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
Für diesen Beitrag haben gedankt: Goaznic
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 14.11.11 12:56
Unter Windows kann man beides nehmen bei Microsoft Programmen, glaube ich.
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: 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.?
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 15.11.11 11:40
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: Goaznic
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: Di 15.11.11 11:52
Oh, danke! Das ist super, genau sowas hab ich den ganzen Morgen gesucht! 
|
|
Goaznic 
      
Beiträge: 23
Win XP, Win 7
Delphi 5, Delphi 10
|
Verfasst: 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)?
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 18.11.11 14:47
Ab Vista gibt es mit InitiateShutdown und InitiateSystemShutdownEx auch komfortable Möglichkeiten eine Zeit und eine Botschaft anzugeben.
Für diesen Beitrag haben gedankt: Goaznic
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.
Für diesen Beitrag haben gedankt: Goaznic
|
|
JuniorProgrammierer86
Hält's aus hier
Beiträge: 13
|
Verfasst: Mi 01.02.12 18:37
hast du es jetzt hinbekommen?? stehe nämlich im studium vor dem selben schlamassel!! hehe
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 01.02.12 19:35
Was hast du denn versucht? Hast du die API-Funktionen versucht?
|
|