![]() |
Windows 8.1 64 Bit herunterfahren.
Hallo,
Ich versuche Windows 7 / 8 automatisch herunterzufahren. Gebe ich unter Ausführen folgenden Befehl ein: C:\Windows\SysWOW64\schtasks /create /TN Herunterfahren /SC ONCE /ST 15:30 /TR "shutdown.exe /s /f /t 0" so fährt der Rechner ordnungsgemäß um 15:30 Uhr runter. nun das ganze in Delphi:
Delphi-Quellcode:
Hier funktioniert es nicht. Was mache ich falsch? :(
Ausschalten := 'C:\Windows\SysWOW64\schtasks /create /TN Herunterfahren /SC ONCE /ST ' +
TimeToStr(edtZeit.Time) + ' /TR "shutdown.exe /s /f /t 0"'; ShellExecute(self.Handle,'open',Pchar(Ausschalten),'','',SW_Normal); Kann mir jemand einen Tipp geben. Vielen Dank im voraus. |
AW: Windows 8.1 64 Bit herunterfahren.
Das 'open' irritiert mich etwas.
|
AW: Windows 8.1 64 Bit herunterfahren.
sollte das nicht mit ShellExecute übergeben werden?
Zitat:
|
AW: Windows 8.1 64 Bit herunterfahren.
Hast du mal geprüft, ob der Task eingetragen wird?
EDIT: Der Fehler liegt darin, der Funktion ShellExecute den ganzen Befehl zu übergeben, während sie eigentlich erwartet, lpFile und lpParameters getrennt voneinander zu bekommen. MfG Dalai |
AW: Windows 8.1 64 Bit herunterfahren.
@TE
Eine Pfad-Angabe braucht man in diesem Fall nicht: WINDOWS weiss, wo es die beiden Programme findet. Wenn Du den /t-Parameter nicht nutzt, kannst Du ihn auch weglassen. Bei neuen WINDOWS-Versionen kann man Sekunden eingeben, die bis 10 Jahre entsprechen - früher max. 600 Sek. Ich habe /t 30 gesetzt, um evtl. noch abbrechen zu können...
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var strParams : String; begin strParams:= '/create /TN Herunterfahren /SC ONCE /ST 17:30:00 /TR "shutdown.exe /s /f /t 30"'; ShellExecute(Application.Handle,NIL,'schtasks', PWChar(strParams),NIL, SW_SHOW); end; |
AW: Windows 8.1 64 Bit herunterfahren.
Danke hathor,
so funktioniert es. :hi: |
AW: Windows 8.1 64 Bit herunterfahren.
Änderungen, wenn man flexibel sein will:
- Zeitangabe im Edit-Feld - Hibernation statt Shutdown
Delphi-Quellcode:
Im Console-Fenster (cmd.exe) kann man mit
procedure TForm1.Button4Click(Sender: TObject);
var strParams : String; begin Edit1.Text:= '19:10:00'; strParams:= '/create /TN Schlaf2 /SC ONCE /ST '+ Edit1.text +' /TR "shutdown.exe /h"'; ShellExecute(Application.Handle,NIL,'schtasks', PWChar(strParams),NIL, SW_SHOW); end; schtasks /Query überprüfen, was alles geplant ist. |
AW: Windows 8.1 64 Bit herunterfahren.
Ich habe hier im Dienst auf die Schnelle keine funktionierende Lösung für eine D7-Anwendung unter Win10 64bit gefunden und einfach eine batch-Datei genutzt.
Code:
Dann muss sich mein Programm nur beenden und der Rechner fährt anschließend runter. Hat wunderbar funktioniert.
MyProg.exe
shutdown -s |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz