![]() |
Delphi-Version: 10.1 Berlin
CMD mit Output
Hallo Leute,
wie immer, werde ich hier im Forum fündig. Suchte nach CMD mit Output: ![]() 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. |
AW: CMD mit Output
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. |
AW: CMD mit Output
... 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. |
AW: CMD mit Output
Zitat:
Code:
Und nein, Powershell ersetzt cmd.exe nicht. Beide sollten sich nicht in die Quere kommen.
ComSpec=C:\Windows\system32\cmd.exe
|
AW: CMD mit Output
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..
Zitat:
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: ![]() |
AW: CMD mit Output
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.
Delphi-Quellcode:
Auf einem Rechner läuft das, auf einem anderen nicht. Beide habe exakt dasselbe Windows mit dem gleichen Temp-Ordner.
ShellExecute(0,'open',PWideChar('cmd.exe'),PWideChar('/c ver >'+Pf+'ver.txt'),PWideChar(ExtractFilePath(ParamStr(0))),SW_HIDE);
Willie. |
AW: CMD mit Output
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): ![]() |
AW: CMD mit Output
Ich würde ja einfach cmd.exe /k mit SW_SHOW Flag ausführen, um zu sehen, woran es genau scheitert.
Grüße Dalai |
AW: CMD mit Output
Hallo Leute,
ich will in meiner About-Box die installierte Windows-Version anzeigen. Ich habe es so gemacht:
Delphi-Quellcode:
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.
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} 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. |
AW: CMD mit Output
Und wie wäre es damit?
![]() ![]() ![]() 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). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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 by Thomas Breitkreuz