AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie kann ich eine CMD Applikation in ein Delphi-Prog zwingen
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich eine CMD Applikation in ein Delphi-Prog zwingen

Ein Thema von Otti · begonnen am 10. Sep 2002 · letzter Beitrag vom 10. Sep 2002
Antwort Antwort
Otti
(Gast)

n/a Beiträge
 
#1

Wie kann ich eine CMD Applikation in ein Delphi-Prog zwingen

  Alt 10. Sep 2002, 21:20
Hallo...

Mir stellt sich folgendes Problem:

Ich habe hier eine Applikation für die Windows Kommandozeile (CMD), also vom Aufbau her wie ein DOS-Konsolenprogramm, man tippt seine Befehle halt ein usw.

Jetzt hätte ich aber gerne, dass ich dieses Programm mit einem Delphi Programm ansprechen (Befehle schicken) und auslesen kann. Am Besten so, dass nur noch im Delphi Programm drin eine Kommandozeile vorhanden ist, und die eigentliche DOS-Applikation gar nicht mehr im Taskmanager auftaucht...

Ich hoffe, ich konnte mich verständlich machen.
Das Prinzip ist das selbe wie das des in Delphi programmierten SWI-Prolog Editors (http://www.bildung.hessen.de/abereic...ing/indexe.htm).

Ich hoffe, jemand kann mir da weiterhelfen.
Danke schonmal,

MfG
Otti
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#2
  Alt 10. Sep 2002, 22:31
Schau mal nach Winexec oder Creatprocess.
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Otti
(Gast)

n/a Beiträge
 
#3
  Alt 10. Sep 2002, 22:34
Sorry aber das hilft mir nicht wirklich weiter, ich habe nicht so viel Delphi Erfahrung...
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#4
  Alt 10. Sep 2002, 22:45
Also mit Winexec
Code:
winexec(Pchar('command.com /C dir *.*'),0);
Also
Pchar ist ein String nur halt ein bischen anderst aufgebaut
command.com ist die Eingabeaufforderung
/C ist der Parameter das Command den nachfolgenden Befehl ausführen soll und dann sich selbst beenden
und die 0 gibt an ob sichtbat oder nicht (0=nicht sichtbar,1=sichbar)
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 10. Sep 2002, 22:53
Moin Otti,

dann stellt sich mir die Frage:
Nur wenig Delphi Erfahrung, oder mit der Programmierung unter Windows im Allgemeinen?

In letzterem Falle könnte das was Du vor hast, vielleicht etwas arg kompliziert werden, so als, mehr oder weniger, Einstieg.

Falls ersteres (funktionsfähig umgesetzt hab' ich's auch noch nicht, aber mir ist das Grundprinzip bekannt):
Ein Konsolenprogramm verwendet, für die Eingabe von Daten StdIn, und für die Ausgabe StdOut und StdError.
Im Kontext mit der CMD.EXE hiesse das:
StdOut ist die "normale" Ausgabe auf den Bildschirm, die sich mit 1> oder > umleiten lässt, StdError die Ausgabe im Fehlerfalle. Letztere liesse sich mit 2> umleiten.
StdIn liesse sich durch Import mit < simulieren, und wäre ansonsten die Eingabe via Tastatur.

Das sind Umleitungs- bzw Ein-/Ausgabemöglichkeiten, die im System so vorgesehen sind.

Diese müssten jetzt auf eigene Kanäle umgebogen werden.
Wird ein Prozess mit CreateProcess gestartet, so ginge dies, indem man in der Struktur STARTUPINFO die Member hStdInput, hStdOutput und hStdError mit entsprechenden Handles versorgt. (Voraussetzung: dwFlags enthält STARTF_USESTDHANDLES, ansonsten würden die angebenen Werte ignoriert werden).

Ich schau mal, ob ich noch ein Beispiel dafür finde.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Otti
(Gast)

n/a Beiträge
 
#6
  Alt 10. Sep 2002, 22:59
Hmm also ich will nicht sagen, dass ich absolut Null Ahnung von Delphi hätte (immerhin 2 Jahre Informatik-Leistungskurs), aber ich habe mich noch nie mit solchen Themen beschäftigt.

Es ist übrigens kein DOS-Programm sondern nur eines, das aus der MS-DOS Eingabeaufforderung aufgerufen wird (Overnet Command Line Client -> www.overnet.com). Mein Ziel ist es bei diesem Programm ein Interface drumherum zu basteln, das mir die Ergebnisse graphisch ausgeben kann bzw. dem CLient Befehle schicken kann, was er machen soll...

Wichtig:
Das Konsolenprogramm schliesst sich nicht nach jedem Aufruf sondern muss nach jedem Befehl am Laufen bleiben (ist ja schliesslich ein Fileshare Client)...
  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 06:23 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