Autor Beitrag
Goaznic
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: 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:

cmd_shutdown

(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 user profile iconNarses: Bild als Anhang hochgeladen.
Einloggen, um Attachments anzusehen!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.11.11 11:48 
Und was liefert die Forensuche nach "windows runterfahren"?
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Mo 14.11.11 11:58 
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Goaznic
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26
Erhaltene Danke: 8



BeitragVerfasst: Mo 14.11.11 12:19 
Ich benutze einfach ShellExecute

ausblenden 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



BeitragVerfasst: Mo 14.11.11 12:39 
user profile iconLSanchez hat folgendes geschrieben Zum zitierten Posting springen:
Ich benutze einfach ShellExecute

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: 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



BeitragVerfasst: Mo 14.11.11 12:56 
Unter Windows kann man beides nehmen bei Microsoft Programmen, glaube ich.
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Di 15.11.11 11:14 
Ist
ausblenden Delphi-Quelltext
1:
ExitWindowsEx(EWX_SHUTDOWN,0);					

alles, was ich eingeben muss? Quasi als Befehl, wenn ich auf einen Button Klick z.B.?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 15.11.11 11:40 

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Goaznic
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: Di 15.11.11 11:52 
Oh, danke! Das ist super, genau sowas hab ich den ganzen Morgen gesucht! :)
Goaznic Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win XP, Win 7
Delphi 5, Delphi 10
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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



BeitragVerfasst: 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



BeitragVerfasst: Mi 01.02.12 18:37 
hast du es jetzt hinbekommen?? stehe nämlich im studium vor dem selben schlamassel!! hehe
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 01.02.12 19:35 
Was hast du denn versucht? Hast du die API-Funktionen versucht?