Ausgabe in Kommandozeile wenn /PM:PM
Moderator: Moderatoren
Ausgabe in Kommandozeile wenn /PM:PM
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?
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?
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Ausgabe in Kommandozeile wenn /PM:PM
Das ist das Standardverhalten solange man nicht die Prozedur AppSys überschreibt.
Also normal geht ein XbpCrt() Fenster auf, das auf die Consolen Befehle reagiert:
Die GUI Fenster (XbpDialog()) sind zusätzlich und über ihr Objekt anzusprechen.
Also normal geht ein XbpCrt() Fenster auf, das auf die Consolen Befehle reagiert:
Code: Alles auswählen
? "Test"
@ 1,1 say "Test2
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Ausgabe in Kommandozeile wenn /PM:PM
unter Windows gibt man einen Text per MsgBox() aus wenn die Xbase++ App mit /PM:PM gelinkt wurde.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...
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Ausgabe in Kommandozeile wenn /PM:PM
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.
Für Statusmeldungen wie oben beschrieben (eine Art von Debugging) ist das sogar sehr nützlich.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Ausgabe in Kommandozeile wenn /PM:PM
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
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Ausgabe in Kommandozeile wenn /PM:PM
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.
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.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Herbert
- 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
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.
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...
Immer in Bewegung...