![]() |
CMD.exe ver>123.txt
Hallo Delphifreunde/innen,
nachdem Windows 8.1 mit GetWindowsVersion() nicht mehr erkannt wird, hatte ich mir folgende Lösung ausgedacht: Mit ShellExecute CMD.exe ver>123.txt Das funktioniert in der Eingabeaufforderung aber bei ShellExecute wird die Umleitungsdatei nicht angelegt, obwohl es hier anders zu lesen ist: ![]() Ich will es eigentlicht nicht erwähnen, aber durch meine Augenerkrankung bin ich schlecht in Rechersche, über Hilfe freue ich mich. MfG Willie |
AW: CMD.exe ver>123.txt
Wie sieht dein Aufruf von ShellExecute aus? Benutzt du
Code:
vor dem Befehl? Umleitungen werden ausschließlich von der ausführenden Shell interpretiert - und die Shell explorer.exe (die den ganzen GUI-Krempel macht) hat damit nichts am Hut.
cmd /c
MfG Dalai |
AW: CMD.exe ver>123.txt
Ok, ich werde es so machen und dann nochmal melden!
Willie |
AW: CMD.exe ver>123.txt
Delphi-Quellcode:
Die Datei wird nicht angelegt.
procedure TForm1.Button2Click(Sender: TObject);
var s,st: string; TF: TextFile; begin s:=CreateTempFile(TmpPath,'~',false); ShellExecute(Application.Handle,PChar('cmd.exe/c',PChar('ver>'+s),nil,nil,SW_SHOW); AssignFile(TF,s); Reset(TF); ReadLn(TF,st); CloseFile(TF); Edit1.Text:=st; end; CreateTempFile(TmpPath,'~',false) habe ich selbst gebaut und findet einen zufälligen Dateinamen im Tremp-Ordner. Angelgt soll die Datei erst bei ShellExecute(). Der Rückgabewert von ShellExecute ist 2. Willie. |
AW: CMD.exe ver>123.txt
Bitte Leerzeichen beachten!
Code:
/c ist ein Parameter für cmd.exe. Es kann also sein, dass das /c mit in den Parameter-Parameter muss (was ein doofes Wort ;)). Also so:
cmd.exe /c
Delphi-Quellcode:
ShellExecute(Application.Handle, PChar('cmd.exe'), PChar('/c ver>'+s), nil,nil, SW_SHOW);
Abgesehen davon solltest du auf das Ende des Befehls warten und dann erst weitermachen in deinem Delphi-Code; es gibt dafür eine Reihe von Funktionen im Netz (z.B. ShellExecuteAndWait/ShellExecAndWait). MfG Dalai |
AW: CMD.exe ver>123.txt
Hallo Dalai,
ich habe es mit allen möglichen Kombinationen versucht, es klappt nicht. Verstehe ich dich richtig, dass es mit ShellExecute eher nicht geht? (Ich weiß von früheren Versuchen, dass ShellExecute ein elender Befehl ohne sinnvolle Rückmeldung ist) Dann gehe ich vielleicht besser über die Registry? Willie. |
AW: CMD.exe ver>123.txt
Zitat:
Zitat:
Zitat:
![]() MfG Dalai |
AW: CMD.exe ver>123.txt
Hallo Dalai,
ich habe hier im Forum ShellExecute_AndWait(<Programm>,>Parameter>) gefunden und ungeprüft benutzt, es funktioniert. Zitat:
Aber jetzt komme ich klar, ich danke dir! Gruß Willie. |
AW: CMD.exe ver>123.txt
Zitat:
MfG Dalai |
AW: CMD.exe ver>123.txt
Warum updatest Du nicht Dein Manifest wie
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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