![]() |
Text in ein fremdes Fenster an bestimmter Position
Hallo,
ich möchte im geöffneten Fenster eines laufenden Programms einen Text an eine bestimmt Position setzten. Momentan mache ich das so, wobei der Text ('Hallo') in die Caption (warum auch immer gerade dorthin) des Fensters geschrieben wird (in FHWnd ist das Handle des Fensters gespeichert):
Delphi-Quellcode:
Das funzt auch so, 'Hallo' erscheint im Fenster. Ich will es aber nicht in die Caption schreiben, sondern am liebsten per Koordinaten an eine bestimmt Stelle.
function FUNC_SendInput(const s: string):String;
begin if FHWnd=0 then begin Application.MessageBox(PChar('Fehler!'),''); exit; end; SetForegroundWindow(FHWnd); Sendmessage(fhwnd,WM_SETTEXT,0,Integer(PChar(s))); end; procedure TForm.Button1Click(Sender: TObject); begin FUNC_SendInput('Hallo'); end; Kann mir jemand helfen? Nette Grüße |
Re: Text in ein fremdes Fenster an bestimmter Position
Hi,
Also mit WM_SETTEXT kannst du nur den Text/Caption von Objekten mit Handle ändern. Was du machen könntest, ist das ganze mit Canvas zu "malen". Das Problem ist jedoch das das ganze einfach wieder übermalt wird bei der nächsten WM_PAINT Message an das Objekt... So würde man das dann ungefähr machen:
Delphi-Quellcode:
Gruß
var C: TCanvas;
begin C:= TCanvas.Create; C.Handle := GetDC(FHwnd); C.TextOut(x,y,Text); C.Free; end; Neutral General |
Re: Text in ein fremdes Fenster an bestimmter Position
Hallo,
danke sehr, das funzt so. Du hast aber natürlich recht, dass mein Text immer wieder überschrieben wird. Fällt da jemand noch ne andere Lösung ein oder kann man die genannte irgendwie ausbauen? Grüße |
Re: Text in ein fremdes Fenster an bestimmter Position
Immer daran denken: sämliche Manipulation über Fensterhandles (zwwichen 2 versch. Anwendungen)
werden unter Windows Vista nicht mehr funktionieren! :warn: SendMessage wird zwar ausgeführt, kommt aber bei der fremden Anwendung nicht an. |
Re: Text in ein fremdes Fenster an bestimmter Position
Du meinst damit, Canvas ist die optimale Lösung?
|
Re: Text in ein fremdes Fenster an bestimmter Position
Zitat:
Kommt es nicht auch darauf an, was für ein UI privilege die Anwendung hat? Siehe ![]() Zitat:
|
Re: Text in ein fremdes Fenster an bestimmter Position
Hat jemand noch ne Idee?
|
Re: Text in ein fremdes Fenster an bestimmter Position
Timer + Zeichenoperation?
|
Re: Text in ein fremdes Fenster an bestimmter Position
Hi,
es ist zwar nicht optimal aber eine andere Variante, mit dem TStaticText kann man ja auch Text anzeigen, du setzt ihn auf das fremde Fenster.
Delphi-Quellcode:
Windows.SetParent(Statictext1.Handle, FHWnd);
|
Re: Text in ein fremdes Fenster an bestimmter Position
Ja, Timer + Zeichnen geht auch, hab ich auch schon probiert, da flackerts aber so.
Zu dem anderen Vorschlag: Kannste nochmal was genauer erklären wie das geht? Danke an alle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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