![]() |
Wie ein Kommandozeilenprogramm ausführen?
Hallo,
ich habe ein Kommandozeilenprogramm, dass .dbf-Dateien int .txt-Dateien umwandelt. Der Aufruf unter Windows ist ganz einfach (Start-Auführen-"cmd"-Programm mit Parametern ausführen), aber wie kann ich das Programm aus Delphi heraus aufrufen? Die Syntax für mein Kommandozeilenprogramm ist
Code:
Ich hoffe, ihr könnt mir helfen!
DBTAB xyz.dbf xyz.txt
Dominik PS: Mit diesem Code habe ich es schon probiert, geht aber nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var c, p: array[0..800] of Char; begin StrPCopy(c, 'C:\DBTAB.exe'); StrPCopy(p, 'DBTAB test.dbf test.txt'); ShellExecute(Application.Handle, 'open', c, p, nil, SW_NORMAL); end; |
Re: Wie ein Kommandozeilenprogramm ausführen?
also wenn du es wie ein programm in cmd ausführen willst gib einfach ein:
Delphi-Quellcode:
wenn das nicht funktioniert musst du es nochmal mit shellexecute ausprobieren.
windows.WinExec(pchar('DBTAB xyz.dbf xyz.txt'),0);
aber ich denk mal das müsste funzen |
Re: Wie ein Kommandozeilenprogramm ausführen?
Schonmal versucht bei ShellExecute den Returncode auszuwerten? Dort findest du in der Regel nützliche Hinweise, warum es nicht geklappt hat. Vielleicht musst du aber auch das Verzeichniss für die Ein- und Ausgabedateien angeben oder das entsprechende Verzeichnis als Arbeitsverzeichnis (Parameter der jetzt bei dir auf nil steht) angeben.
|
Re: Wie ein Kommandozeilenprogramm ausführen?
lass mal das 'open' weg ... manchmal macht es mehr Probleme, als es nützt.
Delphi-Quellcode:
und dann hast du das Programm "DBTAB" auch nochmals im Parameter aufgerufen ;)
ShellExecute(Application.Handle, nil, PChar('C:\DBTAB.exe'), PChar('xyz.dbf xyz.txt'), nil, SW_NORMAL);
Ach ja droppi ... WinExec ... schmeiß das Ding weg, sowas sollte nicht mehr verwendet werden ... das sollte sogar in der OH drin stehen :warn: |
Re: Wie ein Kommandozeilenprogramm ausführen?
Zitat:
|
Re: Wie ein Kommandozeilenprogramm ausführen?
und?
Delphi-Quellcode:
Programm, Parameter und Arbeitsverzeichnis?
ShellExecute(0, nil, PChar('C:\DBTAB.exe'), PChar('"xyz.dbf" "xyz.txt"'), PChar('C:\'), SW_NORMAL);
Und wenn ein Parameter Leerzeichen enthält, dann muß er natürlich in " eingrschlossen werden, aber das ist ja in der DOS-Box nicht anders ^^ |
Re: Wie ein Kommandozeilenprogramm ausführen?
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang mal ein Screenshot, wie ich das Programm aufrufe.
|
Re: Wie ein Kommandozeilenprogramm ausführen?
Das sollte dann so aussehn.
Delphi-Quellcode:
ShellExecute(0, nil, PChar('DBTAB'), PChar('test.dbf test.txt'), PChar('C:\Dominik\DBF2HTML'), SW_NORMAL);
|
Re: Wie ein Kommandozeilenprogramm ausführen?
Achso, jetzt habe ich's kapiert, danke! :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 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