AGB  ·  Datenschutz  ·  Impressum  







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

CMD mit Output

Ein Thema von Willie1 · begonnen am 6. Mär 2019 · letzter Beitrag vom 1. Apr 2019
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Willie1

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

CMD mit Output

  Alt 6. Mär 2019, 18:54
Delphi-Version: 10.1 Berlin
Hallo Leute,
wie immer, werde ich hier im Forum fündig. Suchte nach CMD mit Output:

https://www.delphipraxis.net/169697-...t-ausgabe.html

Michael (Alleinherrscher) ist ja fleißig gelobt worden, dem kann ich mich nur anschließen. Aber ein Haar in der Suppe habe ich gefunden: der Parameter "ver" wird ignoriert. "help ver" funktioniert richtig. Warum wird bei "ver" einfach nichts angezeigt?


Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#2

AW: CMD mit Output

  Alt 7. Mär 2019, 05:18
Hmm..

Das hat nichts mit den Source von Michael zu tun!

Zitat unbekannter Herkunft:

(*
Um Kommandozeilenbefehle ausführen zu können, die keine eigenständigen
Anwendungen sind (wie der DOS-Befehl “dir”), muss der
Name des Kommandozeileninterpreters davor stehen. “cmd.exe” ist das unter
Windows NT/2000/XP/.. und “command.com” unter Windows 9x. Der Parameter /c sorgt
dafür, dass der Kommandozeilenbefehl ausgeführt und die Kommandozeile
anschließend wieder geschlossen wird.
*)

Somit verwende 'cmd.exe /A /C ver' und dessen Ausgabe wird in deinem Memo erscheinen.
  Mit Zitat antworten Zitat
Willie1

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

AW: CMD mit Output

  Alt 7. Mär 2019, 19:39
... ich finde Michaels Quelltext gut.

Obwohl er mir nicht weiterhilft. Das mit /c wusste ich, aber egal, ob mit /a oder /c oder ohne, es passiert nichts. Seit irgeneinem Windows-Update funktioniert die Console nicht mehr, wie gewohnt. Das hatte ich vor über einem Jahr beim Einbau von Exiftool (von Phil Harvey) in ein eigenes Programm erkennen müssen.
Könnte es sein, dass Microsoft cmd durch Powershell ersetzt. Zur Zeit gibt es ja beides.
Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Rudy Velthuis

Registriert seit: 10. Sep 2011
Ort: Gelsenkirchen
42 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: CMD mit Output

  Alt 8. Mär 2019, 12:42
Zitat:
Code:
(*
  Um Kommandozeilenbefehle ausführen zu können, die keine eigenständigen
  Anwendungen sind (wie der DOS-Befehl “dir”), muss der
  Name des Kommandozeileninterpreters davor stehen. “cmd.exe” ist das unter
  Windows NT/2000/XP/.. und “command.com” unter Windows 9x. Der Parameter /c sorgt
  dafür, dass der Kommandozeilenbefehl ausgeführt und die Kommandozeile
  anschließend wieder geschlossen wird.
*)
Man sollte einfach den Inhalt der Environment-Variable COMSPEC benutzen. In meinem Fall ist das

Code:
ComSpec=C:\Windows\system32\cmd.exe
Und nein, Powershell ersetzt cmd.exe nicht. Beide sollten sich nicht in die Quere kommen.
Rudy Velthuis

Geändert von Rudy Velthuis ( 8. Mär 2019 um 12:45 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#5

AW: CMD mit Output

  Alt 8. Mär 2019, 14:17
Hmm..

... ich finde Michaels Quelltext gut.

Obwohl er mir nicht weiterhilft. Das mit /c wusste ich, aber egal, ob mit /a oder /c oder ohne, es passiert nichts. Seit irgeneinem Windows-Update funktioniert die Console nicht mehr, wie gewohnt. Das hatte ich vor über einem Jahr beim Einbau von Exiftool (von Phil Harvey) in ein eigenes Programm erkennen müssen.
Könnte es sein, dass Microsoft cmd durch Powershell ersetzt. Zur Zeit gibt es ja beides.
Gruß Willie.

Anbei ein kleines Testtool, probiere es bei dir aus.
(Erstellt mit D6)
Es erstellt im gleichen Verzeichnis eine kleine Textdatei (CMDs.txt) welche genutzt wird, um sich die DOS-Befehle zu merken .

Wenn dieses bei Dir läuft, kann ich den Src noch hier einstellen..

Edit:
Wobei, es benutzt die Funktion von hier:
https://www.delphipraxis.net/164364-...-einlesen.html
Angehängte Dateien
Dateityp: zip Tool_DOSConsole.zip (223,4 KB, 32x aufgerufen)

Geändert von HolgerX ( 8. Mär 2019 um 14:23 Uhr)
  Mit Zitat antworten Zitat
Willie1

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

AW: CMD mit Output

  Alt 12. Mär 2019, 18:14
Hallo Holger,
kannst du mir den Quelltext schicken. Ich führe nicht gerne unbekannte Exe-Dateien aus. Danke!
Pf enthält den Pfad zum temporären Ordner. (user\[Name]\apdata\Local\temp) wg. der Schreibrechte.
ShellExecute(0,'open',PWideChar('cmd.exe'),PWideChar('/c ver >'+Pf+'ver.txt'),PWideChar(ExtractFilePath(ParamStr(0))),SW_HIDE); Auf einem Rechner läuft das, auf einem anderen nicht. Beide habe exakt dasselbe Windows mit dem gleichen Temp-Ordner.

Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (12. Mär 2019 um 18:16 Uhr) Grund: Fehler
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#7

AW: CMD mit Output

  Alt 12. Mär 2019, 18:46
Was sagt denn der Rückgabewert von ShellExecute aus?

Derweil: Momentan ist absolut unklar, ob ShellExecute scheitert oder Ver oder "nur" die Ausgabe nicht "abgeholt" werden kann.

Geht es darum, die Windowsversion zu erfahren?

Warum dann nicht mit Bordmitteln von Delphi?
z. B. hier (mit mehreren Alternativvorschlägen): https://stackoverflow.com/questions/...indows-version
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

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

AW: CMD mit Output

  Alt 12. Mär 2019, 19:19
Ich würde ja einfach cmd.exe /k mit SW_SHOW Flag ausführen, um zu sehen, woran es genau scheitert.

Grüße
Dalai
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
668 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: CMD mit Output

  Alt 14. Mär 2019, 17:32
Hallo Leute,
ich will in meiner About-Box die installierte Windows-Version anzeigen. Ich habe es so gemacht:
Delphi-Quellcode:
function WinVersionAPI_asString: string;
var
  osInfo: tosVersionInfo;
begin
  Result := 'unknown';
  osInfo.dwOSVersionInfoSize:= Sizeof( osInfo );
  if DWORD(GetVersionEx( osInfo )) <> 0 then
    with osInfo do begin
      case dwPlatformId of
        VER_PLATFORM_WIN32_WINDOWS :
          Result:='Kein NT-OS';
        VER_PLATFORM_WIN32_NT :
          Result:=Format('%d.%d Built %d %s',[dwMajorVersion,dwMinorVersion,dwBuildNumber,string(szCSDVersion)]);
      end
    end
  //if
end; {WinVersionAPI_asString}
Ich habe hier im Forum gelernt, dass hier nicht immer die richtige Version angezeigt wird. (Manifest). Dann habe ich es mit cmd /c ver >...ver.dat gemacht, das hat ca. 1 Jahr funktioniert jetzt wird nichts mehr angezeigt. Siehe mein Beispiel.
Das war der Sinn meine Anfrage!

Ich will keinen Programm-Code, abhängig von der Windows-Version schreiben, NUR die installierte Windows-Version ermitteln und anzeigen.
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#10

AW: CMD mit Output

  Alt 14. Mär 2019, 18:01
Und wie wäre es damit?

https://www.arclab.com/en/kb/cppmfc/...-registry.html --> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

https://www.windows-commandline.com/...-from-command/

http://delphidabbler.com/articles?article=23&part=2

In der SysUtils müsste es eigentlich bereits entsprechend befüllte globale Variabeln geben, die man einfach in seine Ausgabe einbauen kann, ohne irgendwas selbst ermitteln zu müssen.

Neben Ver zur Versionsausgabe gibt es auch noch Systeminfo (auf der Kommandozeile).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    

 

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 15:44 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