AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie ein Kommandozeilenprogramm ausführen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ein Kommandozeilenprogramm ausführen?

Ein Thema von Kinimod8 · begonnen am 14. Okt 2005 · letzter Beitrag vom 14. Okt 2005
Antwort Antwort
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#1

Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:13
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:
DBTAB xyz.dbf xyz.txt
Ich hoffe, ihr könnt mir helfen!
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;
Dominik Peters
  Mit Zitat antworten Zitat
droppi
(Gast)

n/a Beiträge
 
#2

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:23
also wenn du es wie ein programm in cmd ausführen willst gib einfach ein:
windows.WinExec(pchar('DBTAB xyz.dbf xyz.txt'),0); wenn das nicht funktioniert musst du es nochmal mit shellexecute ausprobieren.
aber ich denk mal das müsste funzen
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#3

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:26
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.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:29
lass mal das 'open' weg ... manchmal macht es mehr Probleme, als es nützt.

ShellExecute(Application.Handle, nil, PChar('C:\DBTAB.exe'), PChar('xyz.dbf xyz.txt'), nil, SW_NORMAL); und dann hast du das Programm "DBTAB" auch nochmals im Parameter aufgerufen

Ach ja droppi ... WinExec ... schmeiß das Ding weg, sowas sollte nicht mehr verwendet werden ... das sollte sogar in der OH drin stehen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#5

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:37
Zitat von droppi:
also wenn du es wie ein programm in cmd ausführen willst gib einfach ein:
windows.WinExec(pchar('DBTAB xyz.dbf xyz.txt'),0); wenn das nicht funktioniert musst du es nochmal mit shellexecute ausprobieren.
aber ich denk mal das müsste funzen
Damit funktioniert es tatsächlich, aber die OH sagt auch, die Funktion wäre veraltet. Aber mit himitsus Methode funktioniert es dann wieder nicht.
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:43
und?
ShellExecute(0, nil, PChar('C:\DBTAB.exe'), PChar('"xyz.dbf" "xyz.txt"'), PChar('C:\'), SW_NORMAL); Programm, Parameter und Arbeitsverzeichnis?
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 ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#7

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 14:52
Im Anhang mal ein Screenshot, wie ich das Programm aufrufe.
Miniaturansicht angehängter Grafiken
dbtab_148.gif  
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#8

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 15:00
Das sollte dann so aussehn.

ShellExecute(0, nil, PChar('DBTAB'), PChar('test.dbf test.txt'), PChar('C:\Dominik\DBF2HTML'), SW_NORMAL);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#9

Re: Wie ein Kommandozeilenprogramm ausführen?

  Alt 14. Okt 2005, 15:06
Achso, jetzt habe ich's kapiert, danke!
Dominik Peters
  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 03:02 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