AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Zugriff auf ein TImage einer externen Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf ein TImage einer externen Anwendung

Ein Thema von KoS · begonnen am 15. Feb 2007 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
Seite 5 von 12   « Erste     345 67     Letzte »    
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#41

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 13:08
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;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#42

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 13:19
Zitat von KoS:
Also kurz zum Verständnis, ein RichEdit (sei es nun von Delphi oder generell) besitzt ein eigenes Handle, ein Memo auch? nur ein Label wird in dem sinne sozusagen einfach nur draufgezeichnet, d.h. der Text existiert schon irgendwo im Hauptprogramm?
Ja, richtig. Alles was in der Hierarchie als Vorfahr ein TWincontrol hat, besitzt erstmal ein Window Handle (deswegen TWinControl)) Zu deinen Beispielen gehört auch TEdit oder TStaticText. An diese Sachen kommt man bitsetters Code (bzw. leichten Abänderungen je nach Info die man haben will) leicht heran.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
KoS

Registriert seit: 9. Jun 2006
55 Beiträge
 
#43

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 15:31
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:
Es gibt auch Programme dafür, wie zB. WinSpy.
Ich hab mal ganz kurz gegooglet, ist WinSpy nicht was zum überwachen vom PC und nicht auf das auflesen von Forms bezogen?
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.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#44

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 15:37
Also ich habe Winspector um die Handles zu vergleichen und zu schauen was es so für windows gibt.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#45

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 19:32
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
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#46

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 23. Feb 2007, 22:33
Zitat von KoS:
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.
Was meine Theorie nochmal bestätigt.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#47

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 26. Feb 2007, 16:27
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
KoS

Registriert seit: 9. Jun 2006
55 Beiträge
 
#48

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 26. Feb 2007, 17:45
Zitat:
Dazu müsstest du in deinem Programm in der Info-Prozedur mal nach jeder Adressrechnung eine Message schicken
Verzeih meine unwissenheit, aber wie genau meinst du das?
Ich hab mal versucht am ende der Info-For schleife das einzusetzen memory^.Postmessage(memory^.backwnd,memory^.backmsg,wparam,lparam); 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)
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#49

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 26. Feb 2007, 18:31
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
Angehängte Dateien
Dateityp: zip delphi_image_197.zip (7,2 KB, 13x aufgerufen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
KoS

Registriert seit: 9. Jun 2006
55 Beiträge
 
#50

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 26. Feb 2007, 18:51
Zitat von sirius:
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)
Leider wohl doch. Du hast den Source angehängt der eigentlich mit dem den ich schon hab gleich ist.
D.h. nichts mit DebugInfo oder umbenannte Messages.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 12   « Erste     345 67     Letzte »    


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 10:56 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