Ausgabe in Kommandozeile wenn /PM:PM

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

Moderator: Moderatoren

Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon Wonderer » Mo, 07. Mär 2016 10:49

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? :)
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon brandelh » Mo, 07. Mär 2016 10:56

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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon AUGE_OHR » Mo, 07. Mär 2016 12:07

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
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10281
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon brandelh » Mo, 07. Mär 2016 12:12

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: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon brandelh » Mo, 07. Mär 2016 12:18

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon georg » Mo, 07. Mär 2016 13:56

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
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1819
Registriert: Fr, 08. Feb 2008 22:29

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon Herbert » Mo, 07. Mär 2016 14:05

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...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1783
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich

Re: Ausgabe in Kommandozeile wenn /PM:PM

Beitragvon Wonderer » Mo, 07. Mär 2016 17:29

Danke für die Antworten, Hinweise und Vorschläge.
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24


Zurück zu Newbie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron