AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CMD.exe ver>123.txt

Ein Thema von Willie1 · begonnen am 1. Jun 2014 · letzter Beitrag vom 2. Jun 2014
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
636 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

CMD.exe ver>123.txt

  Alt 1. Jun 2014, 15:58
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:
http://www.microsoft.com/resources/d....mspx?mfr=true

Ich will es eigentlicht nicht erwähnen, aber durch meine Augenerkrankung bin ich schlecht in Rechersche, über Hilfe freue ich mich.

MfG
Willie
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#2

AW: CMD.exe ver>123.txt

  Alt 1. Jun 2014, 16:02
Wie sieht dein Aufruf von ShellExecute aus? Benutzt du
Code:
cmd /c
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.

MfG Dalai
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
636 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: CMD.exe ver>123.txt

  Alt 1. Jun 2014, 16:08
Ok, ich werde es so machen und dann nochmal melden!
Willie
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
636 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: CMD.exe ver>123.txt

  Alt 1. Jun 2014, 16:31
Delphi-Quellcode:
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;
Die Datei wird nicht angelegt.
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.

Geändert von Willie1 ( 1. Jun 2014 um 17:01 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#5

AW: CMD.exe ver>123.txt

  Alt 1. Jun 2014, 16:45
Bitte Leerzeichen beachten!
Code:
cmd.exe /c
/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:
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
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
636 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: CMD.exe ver>123.txt

  Alt 1. Jun 2014, 17:17
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.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz