Ausgabe in Kommandozeile wenn /PM:PM

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Wonderer »

Ich habe hier ein Programm welches umgestellt wurde auf GUI.

Wie kann ich jetzt dennoch in der Kommandozeile - wenn dort der Aufruf erfolgt - eine Ausgabe vornehmen?
Angenommen das Programm erwartet Kommandozeilen-Parameter und prüft auch am Anfang einige Datenbanken ob diese vorhanden und konsistent sind. Wenn irgendetwas nicht Ok ist soll eine Ausgabe nicht als Windows-Fenster erfolgen sondern im Kommandozeilen-Fenster als Text...

Ich weiß das klingt seltsam - als Anforderung von einem GUI-Programm - aber gesetzt den Fall man möchte das so - geht das? :)
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh »

Das ist das Standardverhalten solange man nicht die Prozedur AppSys überschreibt.
Also normal geht ein XbpCrt() Fenster auf, das auf die Consolen Befehle reagiert:

Code: Alles auswählen

? "Test"
@ 1,1 say "Test2
Die GUI Fenster (XbpDialog()) sind zusätzlich und über ihr Objekt anzusprechen.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von AUGE_OHR »

Wonderer hat geschrieben:Ich habe hier ein Programm welches umgestellt wurde auf GUI.

Angenommen das Programm erwartet Kommandozeilen-Parameter und prüft auch am Anfang einige Datenbanken ob diese vorhanden und konsistent sind. Wenn irgendetwas nicht Ok ist soll eine Ausgabe nicht als Windows-Fenster erfolgen sondern im Kommandozeilen-Fenster als Text...
unter Windows gibt man einen Text per MsgBox() aus wenn die Xbase++ App mit /PM:PM gelinkt wurde.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh »

Der PM Schalter verbietet NICHT die Verwendung der alten ? / SAY Anweisungen.
Für Statusmeldungen wie oben beschrieben (eine Art von Debugging) ist das sogar sehr nützlich.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von brandelh »

wenn die EXE allerdings aus einem CMD Fenster gestartet wurde verhält es sich je nach PM Einstellung anders. /PM=PM (GUI=YES) öffnet ein Fenster und gibt dort die Infos aus ...
Gruß
Hubert
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2821
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 94 Mal
Danksagung erhalten: 13 Mal

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von georg »

Kunden haben manchmal seltsame Wünsche ...

Wenn die Ausgabe in dem cmd-Fenster erfolgen soll, aus dem das Programm gestartet wird, dann gäbe es den Ansatz, mit zwei Programmen zu operieren:

das erste Programm (stub) übernimmt die Prüfungen und gibt gegebenenfalls eine Fehlermeldung aus, ist alles in Ordnung, startet
das zweite Programm, das dann die normalen Aktionen ausführt.

Dadurch kannst Du mit vollem grafischen Programm arbeiten, und doch bleibt die Kontrolle über das cmd-Fenster möglich.


Ich vermute mal, es geht darum, dass die (Fehler-)Ausgabe des Programms umgeleitet und ausgewertet werden kann. Das geht nicht, wenn das Programm ein Fenster öffnet.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Herbert »

Du kannst das Programm etwas unorthodox unter einem CMD-Fenster starten. Die Ausgabe erfolgt so auch dort.
Ich habe noch die alte Sache mit dem /?-Parameter so gelöst. In der Main-Rutine könntest in dieser Art ganz billig nach Auffinden eines groben Fehlers an das CMD eine Info weitergeben.

Code: Alles auswählen

IF cUser=='?' .OR. cUser=='/?'
  ?'Aufruf: ZL7 [n] [/m] [pfad]'
  QUIT
ENDIF
Grüsse Herbert
Immer in Bewegung...
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitrag von Wonderer »

Danke für die Antworten, Hinweise und Vorschläge.
Antworten