AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WMCopyData in Konsolenanwendung

Ein Thema von CocoPops · begonnen am 2. Apr 2014 · letzter Beitrag vom 2. Apr 2014
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#1

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 16:47
Kann eine Konsolenanwendung denn überhaupt Zugriff auf das Konsolenfenster bekommen, in dem sie läuft? Es wäre vielleicht einfacher, ein MessageOnly-Fenster innerhalb der Anwendung zu erzeugen, aber das ist nur so ein spontaner Gedanke.
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
CocoPops
(Gast)

n/a Beiträge
 
#2

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 16:53
Laut Microsoft bekommt man sogar das Handle eines Konsolenfensters: MSDN-Library durchsuchenSo erhalten Sie eine Konsole Fensterhandle (HWND) (http://support.microsoft.com/kb/124103/de).

Mh, wenn das also nicht das Wahre ist. Wie sendet und empfängt man sonst eine Message (string?) an ein Konsolenfenster?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 17:03
Es gibt da eine Komponente (neueste Version IIRC von sirius bearbeitet) namens TDOSCommand, damit müsste es gehen. Die Kommunikation läuft dort über Pipes.
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
CocoPops
(Gast)

n/a Beiträge
 
#4

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 17:29
Sehr interessant diese Unit.

Nur folgendes Problem:
Delphi-Quellcode:
 DosCommand := TDosCommand.Create(nil);
 DosCommand.OnNewLine := DosCommandNewLine; // DosCommandNewLine
Ich habe in der Unit nicht ausfindig machen können, wie man denn die Prozedur für das OnNewLine-Event korrekt deklariert.
Ich habe Sie so deklariert:
 procedure TForm1.cmdNewLine(Sender: TObject; NewLine: string; OutputType: TOutputType); .

Aber bei oben markierter Stelle steigt der Kompiler aus. Die Typen seien nicht kompatibel.

Geändert von CocoPops ( 2. Apr 2014 um 17:33 Uhr)
  Mit Zitat antworten Zitat
CocoPops
(Gast)

n/a Beiträge
 
#5

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 17:43
Ne also mit TDosCommand komme ich gar nicht klar.

Ich glaube das ist viel zu over-sized für mein kleines Problem. Wie sende ich den ganz einfach nur einen String von der GUI mit TDosCommand zur Konsole?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 18:21
Ich selbst nutze die Komponente auch nicht, aber hier steht etwas von SendLine, das klingt doch vielversprechend.
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
CocoPops
(Gast)

n/a Beiträge
 
#7

AW: WMCopyData in Konsolenanwendung

  Alt 2. Apr 2014, 18:26
Das habe ich bereits probiert. Aber er meckert bei der Zeile die CommandLine enthält. Was muss denn da eigentlich hin? Bleibt da immer stur 'cmd' stehen?
Und falls nicht, was ist CommandLine und was ist SendLine?

Und was ich auch noch nicht verstanden habe ist, wo man denn wie festlegt wer mit dem kommuniziert.

Aber zum Problem mit WM_CopyData: das Versenden funktioniert sehr gut und das Handle des Konsolenfensters wird auch gefunden (über den Fenstertitel).
Aber ich schaffe es nicht, die Daten zu empfangen und demnach wird niemals ein X auf die Konsole geschrieben:

Delphi-Quellcode:
procedure TProcs.WMCopyData(var Msg: TWMCopyData);
begin
 WriteLn('X');
end;

Geändert von CocoPops ( 2. Apr 2014 um 18:37 Uhr)
  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 02:08 Uhr.
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-2025 by Thomas Breitkreuz