AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi cmd-exe die sich selbst mit Parameter aufruft
Thema durchsuchen
Ansicht
Themen-Optionen

cmd-exe die sich selbst mit Parameter aufruft

Ein Thema von wolle72 · begonnen am 16. Nov 2007 · letzter Beitrag vom 17. Nov 2007
Antwort Antwort
wolle72
(Gast)

n/a Beiträge
 
#1

cmd-exe die sich selbst mit Parameter aufruft

  Alt 16. Nov 2007, 19:20
Hi,

ich progge gerade eine cmd-shell Datei. Diese muss mit Paramatern gestartet werden. Wenn diese Parameter falsch sind, wird das Programm beendet und eine Fehlermeldung ausgegeben. Jetzt würde ich aber gerne das selbe (mein) Programm mit der Hilfe automatisch im Fehlerfall aufrufen.

Ich tippe mal auf den Befehl ParamStr(0) und dann bin ich mir nicht sicher ob ShellExecute dann richtig wäre oder muss ich das mit einem anderen Befehl starten ?

Grüssle Wolle
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 16. Nov 2007, 19:23
Wieso sollte ShellExecute nicht gehen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 16. Nov 2007, 19:24
CreateProcess ist (denke ich) eher das richtige weil du dort die pipes umlenken kannst so das die gestarteten Programme ihre Std.-Ausgabe etc. in deiner Console ausgeben können.

@DeddyH: ShellExecute sollte eventuell nicht gehen weil damit ein neues Konsolenfenster geöffnet wird (meine Vermutung)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 16. Nov 2007, 19:27
Müsste man mal ausprobieren
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
wolle72
(Gast)

n/a Beiträge
 
#5

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 17. Nov 2007, 10:27
Zitat von SirThornberry:
CreateProcess ist (denke ich) eher das richtige weil du dort die pipes umlenken kannst so das die gestarteten Programme ihre Std.-Ausgabe etc. in deiner Console ausgeben können.
@DeddyH: ShellExecute sollte eventuell nicht gehen weil damit ein neues Konsolenfenster geöffnet wird (meine Vermutung)
Genau das was ich suchte - die Ausgabe soll im selben Konsolenfenster sein.

Ich habe das ganze jetzt soweit auch fast hinbekommen. Da ich aber keine Ahnung von CreateProcess habe, habe ich einfach mal stupide was zusammengesucht und getippt. Jetzt bin ich mir nicht sicher ob das so auch passt oder Schwachsinn ist. Wäre schön, wenn das mal noch jemand anschauen könnte:

Delphi-Quellcode:
var
StartStruct: STARTUPINFO;
ProcInfo: PROCESS_INFORMATION;

und dann im Programm
CreateProcess(nil, PChar(ParamStr(0) + ' /?'), nil, nil, true, 0 , nil, nil, StartStruct, ProcInfo);
exit;
Das Verhalten ist jetzt so, dass wenn mein Programm mit einem falschen Parameter gestartet wurde, dann wird der CreateProcess aufgerufen und gibt dann im selben Fenster die Hilfe meines Konsolenprogramms aus. Allerdings bleibt dann noch ein blinkender Cursor stehen und erst nach Drücken der Enter-Taste erscheint wieder der Prompt. Lässt sich das auch noch abstellen, so dass sofort der Prompt kommt ?
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#6

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 17. Nov 2007, 13:06
Zitat von wolle72:
Das Verhalten ist jetzt so, dass wenn mein Programm mit einem falschen Parameter gestartet wurde, dann wird der CreateProcess aufgerufen und gibt dann im selben Fenster die Hilfe meines Konsolenprogramms aus. Allerdings bleibt dann noch ein blinkender Cursor stehen und erst nach Drücken der Enter-Taste erscheint wieder der Prompt. Lässt sich das auch noch abstellen, so dass sofort der Prompt kommt ?
Hallo,

weshalb eigentlich der ganze Aufwand? Alle meine Kommandozeilenprogramme arbeiten seit Jahren mit dem Aufbau:

lies Parameter
wenn Params Ok TudasNötige
sonst ZeigeHilfe.

Eine nochmaliger Aufruf ist überflüssig.

In TudasNötige kann auch noch /? abgefragt werden, um die Hilfe mit Absicht anzuzeigen.

Gruss Reinhard
  Mit Zitat antworten Zitat
wolle72
(Gast)

n/a Beiträge
 
#7

Re: cmd-exe die sich selbst mit Parameter aufruft

  Alt 17. Nov 2007, 19:32
Hallo Reinhard,

da haste absolut recht, das ist wohl das Sinnvollste. Warum kompliziert, wenn's auch einfach geht

Aber prinzipiell würde mich es trotzdem interessieren wie's geht, wär aber nimmer gar so wichtig.

Danke und viele Grüssle
Wolle
  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 18:37 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