Re: Zugriff auf ein TImage einer externen Anwendung
Probiere es doch einfach aus. Bei meinem Beispiel, setzt du einfach den Cursor über das TMemo oder was auch immer, das Label zeigt dann den Text an, wenn er ausgelesen werden kann. Es gibt auch Programme dafür, wie zB. WinSpy.
Delphi-Quellcode:
function TextHolen(Handle: HWND): AnsiString;
begin SetLength(Result, SendMessage(Handle, WM_GETTEXTLENGTH, 0, 0)+ 1); SendMessage(Handle, WM_GETTEXT, Length(Result), integer(Result)); end; procedure TForm1.Timer1Timer(Sender: TObject); var Point: TPoint; begin Timer1.Interval:= 100; GetCursorPos(Point); Label1.Caption:= TextHolen(WindowFromPoint(Point)); end; |
Re: Zugriff auf ein TImage einer externen Anwendung
Zitat:
|
Re: Zugriff auf ein TImage einer externen Anwendung
Oky also ich hab es mal mit dem "Tool" von bitsetter Versucht, er zeicht mir zwar TEdit-Texte an, aber ansonsten nur die Form.Caption, nicht jedoch die TLabel.
Zitat:
Ich hatte vor längerem auch mal ein Programm gehabt das sämtliche Informationen von Prozessen ausgelesen hat, auch bei Mouse-Over. Infos über Class, Name, Text, Handle, Owner ... aber ich weiß nicht mehr wie das heißt. |
Re: Zugriff auf ein TImage einer externen Anwendung
Also ich habe Winspector um die Handles zu vergleichen und zu schauen was es so für windows gibt.
|
Re: Zugriff auf ein TImage einer externen Anwendung
Es gibt eventuell noch bessere Programme, aber hier sind welche, die genieren auch den Delphi Code für FindWindow().
WinSpy X-Spy eda_preview270.exe |
Re: Zugriff auf ein TImage einer externen Anwendung
Zitat:
|
Re: Zugriff auf ein TImage einer externen Anwendung
Ok, ich hab noch eine Idee. Vielleicht finden wir die WndProc von TLabel. Dazu müsstest du in deinem Programm in der Info-Prozedur mal nach jeder Adressrechnung eine Message schicken, damit ich weis, wie weit er ohne Fehler kommt.
|
Re: Zugriff auf ein TImage einer externen Anwendung
Zitat:
Ich hab mal versucht am ende der Info-For schleife das einzusetzen
Delphi-Quellcode:
was bei mir aber für verwirrung sorgt, da jetzt eigentlich nur noch lauter 0 als Ausgabe kommt, nicht mehr die größe des TImage/TLabel (in Verbindung mit dem Testprogramm)
memory^.Postmessage(memory^.backwnd,memory^.backmsg,wparam,lparam);
|
Re: Zugriff auf ein TImage einer externen Anwendung
Liste der Anhänge anzeigen (Anzahl: 1)
So, Um die Größe der Beiträge nicht weiter aufzublähen, hänge ich den Code mal unten drann (Ich hoffe ich habe nix vergessen)
Ich habe mal die Messages umbenannt und ein paar schönere Namen vergeben. Es gibt jetzt zwei Info Prozeduren. Die eine ist original und derzeit in geschweiften Klammern, also auskommentiert. Und die andere hat diese DebugMessages. Die ganze API Funktionen, wie z.B. Postmessage sind in der Windows SDK beschrieben. Liegt eigentlich jedem Delphi bei. Ist eine Kopie der Beiträge aus der msdn-Library. Postmessage sendet eine Nachricht. Dazu gibts da 4 Parameter. Der erste ist das Window-Handle, an welches die NAchricht geschickt werden soll. Das zweite ist einfach eine MessageNummer, damit wir die Message wiederfinden und der richtigen Bearbeitungsroutine zuordnen können. Die letzten beiden Parameter (wparam und lparam) sind zwei frei wählbare integer-Werte in der wir unsere Message schreiben. Edit: neue Version |
Re: Zugriff auf ein TImage einer externen Anwendung
Zitat:
D.h. nichts mit DebugInfo oder umbenannte Messages. ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 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