AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Kommandozeilen Programm innerhalb von Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Kommandozeilen Programm innerhalb von Delphi

Offene Frage von "lorus"
Ein Thema von lorus · begonnen am 29. Nov 2006 · letzter Beitrag vom 3. Dez 2006
Antwort Antwort
Seite 1 von 2  1 2      
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#1

Kommandozeilen Programm innerhalb von Delphi

  Alt 29. Nov 2006, 23:37
Ich möchte ein Kommandozeilen Programm, wie z.B. ping innerhalb von einem Delphi-Programm ausführen.
Das ganze soll so ähnlich wie cmd.exe sein.

Also man startet ein Kommando-Zeilen Programm und dieses gibt etwas Zeile für Zeile aus. (Beim Beispiel von ping: Antwort ..., Antwort ..., Antwort ...)
Das Programm aufrufen ist ja nicht das Problem, nur das, was passiert dann 'Live' wie im CMD anzuzeigen wird ist wohl das knifflige.

Eine Mmöglichkeit wäre ja, das was im cmd passiert ist, als log in eine Datei umzuleiten und diese dann auslesen und anzeigen lassen. Aber das ist nicht das, was ich möchte. Es soll ja schon innerhalb von meinem Programm 'live' durchrattern. Eventuell die erzeugte Textdatei in einem kurzen Intervall immer wieder neu einlesen?

Hat jemand noch eine andere und elegantere Idee parat?

Grüße,

Lorus
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 06:11
Du könntest die Ausgabe in eine NamedPipe umleiten. Näheres dazu findest du in der MS-SDK Doku.

Und falls du dir die (etwas verzwickte) Arbeit mit dem Pipe-Server nicht machen willst, kannst du auch die Komponente von www.TheUnknownOnes.net nehmen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 06:28
Eine named pipe hat damit nichts zu tun.
Die JCL http://jcl.sf.net bietet dazu etwas an.
Siehe JCL oder JVCL Installer die den Kommandozeilencompiler von Delphi auf diese Weise anzeigen.

Das Problem ist hier auch in mindestens einem Thread breitgetreten worden.
  Mit Zitat antworten Zitat
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#4

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 08:54
Ich hatte ja gehofft, das jemand schonmal soetwas ähnliches vorhatte und erfolgreich umgesetzt hat.

Meine Kenntnisse (über Delphi/Programmierung) sind im Moment einfach viel zu gering um das eigenstängig umzusetzen.

Hier und hier hatte jemand das selbe vor, konnte es aber wohl ebenfalls nicht umsetzen


Trotzdem Danke für die Antworten

Grüße,

Lorus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 09:12
hallo, ich hab hier mal ein Beispiel vor einiger Zeit gepostet:
http://www.delphipraxis.net/internal...=598121#598121
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#6

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 09:21
das ist glaub ich genau das was ich suche
werde es, wenn ich wieder daheim bin mal testen

Danke dir
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 10:01
Zitat von Robert Marquardt:
Eine named pipe hat damit nichts zu tun.
Und warum nicht?
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 11:27
Es ist zwar eine Pipe aber keine named pipe sondern die klassische Unix Pipe ohne Namen.
Es koennte ja sonst nicht unter Win9x funktionieren wo es keine named pipes gibt.
  Mit Zitat antworten Zitat
lorus

Registriert seit: 7. Okt 2006
17 Beiträge
 
#9

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 17:32
Das ist genau das, was ich gesucht habe
Echt genial und tausend dank dir

Noch eine kleine Frage dazu:

Wenn ich

FWriteToStdIn('befehl' + #13#10); aufrufe, dann führt er den befehl ja aus und wartet bis das programm fertig ist. Was gibt die Funktion zurück wenn das Programm fertig ist? Das frage ich weil ich eventuell einen Timeout einbauen will, wenn das gestartet programm zu lange brauch um fertig zu werden.


Grüße,

Lorus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Kommandozeilen Programm innerhalb von Delphi

  Alt 30. Nov 2006, 17:50
WriteToStdIn sollte eigentlich nicht warten sondern schreibt einfach in die Pipe was rein (kenn den Quelltext allerdings nicht auswendig und schließe anhand des Funktionsnamen darauf)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:50 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