AGB  ·  Datenschutz  ·  Impressum  







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

TLMDEdit und WM_SETTEXT

Ein Thema von paperboy · begonnen am 22. Mär 2010 · letzter Beitrag vom 23. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#1

TLMDEdit und WM_SETTEXT

  Alt 22. Mär 2010, 01:40
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:
var WinHandle, EditHandle : THandle;
begin
  WinHandle := FindWindow(nil, 'Anwendung');
  EditHandle := FindWindowEx(WinHandle, 0, 'Edit', nil);
  SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar('Test')));
end;
das hat auch immer gut geklappt...
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

vllt hat ja jemand einen Rat wie man da eventuell ans Ziel kommen kann...

lg paperboy
  Mit Zitat antworten Zitat
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#2

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 11:00
*push*
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 11:02
Falls Du die Sourcen hast, schau doch mal nach, ob das TLMDEdit einen Eventhandler für WM_SETTEXT implementiert hat.
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
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#4

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 12:24
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

lg paperboy
  Mit Zitat antworten Zitat
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#5

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 12:24
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 13:22
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?
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
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#7

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 14:31
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:
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;
wenn Textout doch nur wirklich einen Text setzen würde dann wäre ich jetzt fertig
ich schätze mal das wird wohl das Ende der Fahnenstange sein, oder?

lg paperboy
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 14:34
Im Moment gehen mir die Ideen aus
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
paperboy

Registriert seit: 10. Jun 2009
71 Beiträge
 
RAD-Studio 2009 Arc
 
#9

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 14:44
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

Delphi-Quellcode:
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;
vllt kanns ja mal jemand brauchen...
trotzdem vielen dank für deine hilfe DeddyH...

lg paperboy
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: TLMDEdit und WM_SETTEXT

  Alt 23. Mär 2010, 14:48
Zitat von paperboy:
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
Mal sehen, wann die ersten Beschwerden von Benutzern kommen, wenn dein Programm den Inhalt der Zwischenablage zerschießt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz