![]() |
TLMDEdit und WM_SETTEXT
hallo zusammen...
wie aus dem Titel ersichtlich versuche ich an eine Editbox einer fremden Anwendung einen Text zu schicken... ich hab das schon des öfteren mit folgendem code hinbekommen:
Delphi-Quellcode:
das hat auch immer gut geklappt...
var WinHandle, EditHandle : THandle;
begin WinHandle := FindWindow(nil, 'Anwendung'); EditHandle := FindWindowEx(WinHandle, 0, 'Edit', nil); SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar('Test'))); end; in diesem Fall ist das Editfeld jedoch ein TLMDEdit (mit WinSpy ausgelesen)... ich bekomme zwar ein gültges Handle (mit WinSpy überprüft) die Message kommt jedoch nicht durch... SendMessage liefert 1 zurück und auch ein aufruf von SysErrorMessage(GetLastError) sagt "Der Vorgang wurde erfolgreich beendet".. zu erwähnen wäre vllt noch das das Editfeld auf einem TLMDPanelFill liegt... hab mal versucht an den Button (auch ein TLMDButton) der auch auf dem selben Panel liegt eine Nachricht zu schicken (PostMessage(ButtonHandle, BM_CLICK, 0, 0)) und diese kommt an :roll: vllt hat ja jemand einen Rat wie man da eventuell ans Ziel kommen kann... lg paperboy |
Re: TLMDEdit und WM_SETTEXT
*push*
|
Re: TLMDEdit und WM_SETTEXT
Falls Du die Sourcen hast, schau doch mal nach, ob das TLMDEdit einen Eventhandler für WM_SETTEXT implementiert hat.
|
Re: TLMDEdit und WM_SETTEXT
hey DeddyH,
danke für die Antwort, die LMD-Komponenten sind zwar Freeware werden aber nur mit dcu Dateien aausgeliefert... also leider auch keine Chance da nach zu schauen... vllt noch einen Vorschlag was man da tun könnte? Wenn nicht werde ich mich wohl damit abfinden müssen das die LMD-Tools entwickler nicht wollen das an ihre Editboxen nachrichten geschickt werden :roll: lg paperboy |
Re: TLMDEdit und WM_SETTEXT
upss da ist was schief gelaufen beim posten...
sorry... der post war unbeabsichtig... Edit: ok da der Post schonmal hier ist noch ein kleiner Nachtrag: hab grad Antwort vom Autor des Programms bekommen an das ich die Nachricht schicken will und er sagt er hat auch keinen extra Eventhandler für WM_SETTEXT eingebaut... lg paperboy |
Re: TLMDEdit und WM_SETTEXT
Hmm... und Du bist wirklich sicher, dass Du das richtige Handle ermittelst? Kannst Du testhalber einmal versuchen, Dir mit GetDC den Devicecontext zu holen und auf dem Edit herumzumalen?
|
Re: TLMDEdit und WM_SETTEXT
jap das Handle stimmt... habs einerseits mit WinSpy überprüft und andererseits funktioniert es auch per Textout auf das Editfeld zu malen..
sowie in einer von mir erstellten Testanwendung als auch im Zielprogramm...
Delphi-Quellcode:
wenn Textout doch nur wirklich einen Text setzen würde dann wäre ich jetzt fertig :wink:
var
WinHandle, EditHandle: hwnd; DC : HDC; begin WinHandle := FindWindow(nil, 'TestApp'); EditHandle := FindWindowEx(WinHandle, 0, 'TLMDEdit', nil); DC := GetDC(EditHandle); TextOut(DC, 0,0,'Hallo',5); end; ich schätze mal das wird wohl das Ende der Fahnenstange sein, oder? lg paperboy |
Re: TLMDEdit und WM_SETTEXT
Im Moment gehen mir die Ideen aus :gruebel:
|
Re: TLMDEdit und WM_SETTEXT
hey DeddyH,
habs hinbekommen! da das Editfeld ja beharrlich die WM_SETTEXT Nachricht ignoriert hab ich mir überlegt das ich meinen Text zuerst in die Zwischenablage kopiere und dann per WM_PASTE ins Editfeld einfüge... funktioniert prima :thumb:
Delphi-Quellcode:
vllt kanns ja mal jemand brauchen...
var
WinHandle, EditHandle: hwnd; Temp : String; begin WinHandle := FindWindow(nil, 'TestApp'); EditHandle := FindWindowEx(WinHandle, 0, 'TLMDEdit', nil); Temp := ClipBoard.ToString ClipBoard.AsText := 'Test'; SendMessage(EditHandle, WM_PASTE, 0, 0); ClipBoard.AsText := Temp; end; trotzdem vielen dank für deine hilfe DeddyH... lg paperboy |
Re: TLMDEdit und WM_SETTEXT
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 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