Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi GUI Anwendung mit Consolen-Ausgabe (https://www.delphipraxis.net/49312-gui-anwendung-mit-consolen-ausgabe.html)

MrKnogge 8. Jul 2005 23:41


GUI Anwendung mit Consolen-Ausgabe
 
Hallo,

ich würde gerne eine Gui-Anwendung schreiben, die wenn man sie aus der Eingabe-Aufforderung mit Parametern startet, die Ausgabe per Eingabe-Aufforderung geschieht, (wie beispielsweise 7z).

Ist das möglich, oder muss ich dann eine extra Consolen-Anwenung schreiben, die dann aus meiner Anwenung aufgerufen wird ?

gruss

marabu 9. Jul 2005 16:16

Re: GUI Anwendung mit Consolen-Ausgabe
 
Hallo Christian,

ein gesondertes Konsolenprogramm wird wohl nicht notwendig sein:

Delphi-Quellcode:
uses
  Windows;

var
  hIn: THandle;
  hOut: THandle;
  c: char;
  iRead, iWritten: cardinal;
  s: string;

begin
  AllocConsole;

  hIn := GetStdHandle(STD_INPUT_HANDLE);
  hOut := GetStdHandle(STD_OUTPUT_HANDLE);
 
  FlushFileBuffers(hIn);

  s := '';
  repeat
    ReadFile(hIn, c, 1, iRead, nil);
    if c = #13
      then Break
      else s := s + c;
  until false;

  WriteFile(hOut, s[1], Length(s), iWritten, nil);

  FreeConsole;
end.
Grüße vom marabu

Olli 9. Jul 2005 18:09

Re: GUI Anwendung mit Consolen-Ausgabe
 
{$APPTYPE CONSOLE} ... wenn ein GUI-Programm auch Writeln() können soll ;)

SirThornberry 9. Jul 2005 18:12

Re: GUI Anwendung mit Consolen-Ausgabe
 
@olli: Nur leider kommt dann das Consolenprogramm standardmäßig immer, ich glaub aber der Sinn war dass, das Consolenfenster entweder gar nicht erscheinen sollte oder eben nur bei bestimmten Parametern... Ansonsten war das auch mein erster Gedanke, denn mit diesem Apptype (Console) und dann dem Projekt ein Form hinzufügen hat man leider genau den selben effekt wie gerade beschrieben.

Olli 9. Jul 2005 18:24

Re: GUI Anwendung mit Consolen-Ausgabe
 
Zitat:

Zitat von SirThornberry
@olli: Nur leider kommt dann das Consolenprogramm standardmäßig immer, ich glaub aber der Sinn war dass, das Consolenfenster entweder gar nicht erscheinen sollte oder eben nur bei bestimmten Parametern... Ansonsten war das auch mein erster Gedanke, denn mit diesem Apptype (Console) und dann dem Projekt ein Form hinzufügen hat man leider genau den selben effekt wie gerade beschrieben.

Das stimmt, allerdings gehen bestimmte Sachen nicht, wenn du über AllocConsole() gehst. Das wäre die Alternative um sich auf die Schnelle eine Ausgabekonsole im normalen Windowsstil zu holen ;)

marabu 9. Jul 2005 18:46

Re: GUI Anwendung mit Consolen-Ausgabe
 
Hi Olli,

das WIN32 Console API bietet mir eigentlich alles was ich brauche, aber hier reicht das wohl nicht. Beim Starten des Programmes aus einer Konsole will MrKnogge wahrscheinlich kein neues Konsolfenster, sondern die Standard-Kanäle des offenen Fensters benutzen.

Nachdenkliche Grüße vom marabu

Olli 9. Jul 2005 18:51

Re: GUI Anwendung mit Consolen-Ausgabe
 
@marabu: In diesem Falle sollte er es ganz simpel vergessen. <--- KEIN SCHERZ!
Ich habe das vor Jahren intensiv recherchiert. Das geht einfach nicht. Liegt daran, daß der PE-Loader je nach Flag des Subsystems (CUI/GUI) andere Sachen macht. Also vergeßt es ... alles was machbar ist ist eine Frickellösung! Natürlich ginge es sicher "irgendwie" über das Einschleichen in den Elternprozeß, so dieser das zuläßt.

MrKnogge 9. Jul 2005 20:38

Re: GUI Anwendung mit Consolen-Ausgabe
 
Zitat:

Zitat von marabu
Beim Starten des Programmes aus einer Konsole will MrKnogge wahrscheinlich kein neues Konsolfenster, sondern die Standard-Kanäle des offenen Fensters benutzen.

Genau das wollte ich eigentlich, aber erstmal reicht die Funktion von dir auf jedenfall !

Könnte ich den das Offene Fenster benutzen, wenn ich noch eine "Consolen-Variante" meines Programmes schreiben würde ?

Der Aufwaand wäre eigentlich nicht mal zu hoch, wenn ich die benötigten funktionen aus meiner Haupt-exe exportieren würde.

Olli 9. Jul 2005 20:41

Re: GUI Anwendung mit Consolen-Ausgabe
 
Zitat:

Zitat von MrKnogge
Könnte ich den das Offene Fenster benutzen, wenn ich noch eine "Consolen-Variante" meines Programmes schreiben würde ?

Ein klares: JA!

MrKnogge 9. Jul 2005 20:46

Re: GUI Anwendung mit Consolen-Ausgabe
 
Muss ich da etwas beachten, oder kann ich einfach ganz normal mit ReadLn und WriteLn arbeiten ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz