Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Fensterinhalt eines anderen Programm übernehmen (https://www.delphipraxis.net/158856-fensterinhalt-eines-anderen-programm-uebernehmen.html)

DeddyH 7. Mär 2011 10:07

AW: Fensterinhalt eines anderen Programm übernehmen
 
Und Du hast auch ganz sicher das richtige Handle? Bist Du einmal durchgesteppt und hast Dir die aktuellen Werte angeschaut?

Luckie 7. Mär 2011 11:34

AW: Fensterinhalt eines anderen Programm übernehmen
 
Mit FindWindow findest du nur das Toplevelfenster eine Memo ist aber kein Toplevelfenster. Wenn du das Handle hast, musst du mit FindWindowEx das Handle des Childwindows finden und dieses dann für SendMessage verwenden.

DeddyH 7. Mär 2011 12:00

AW: Fensterinhalt eines anderen Programm übernehmen
 
Deshalb ja mein Tipp mit WinSpy.

wallwriht 7. Mär 2011 15:14

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von DeddyH (Beitrag 1086476)
Deshalb ja mein Tipp mit WinSpy.

Habe den Tip mit Winspy befolgt und bekomme da das childhandle in form einer Nummer raus.
Wie kann ich das zwischendrin nachkucken wie im obigen Post erwähnt?

DeddyH 7. Mär 2011 15:43

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zeig einmal den Code, den WinSpy generiert hat.

wallwriht 7. Mär 2011 15:45

AW: Fensterinhalt eines anderen Programm übernehmen
 
Delphi-Quellcode:
procedure Tform1.findit;

 var
  wndMain, wndChild: HWND;
begin
  wndMain := FindWindow('ThunderRT6FormDC','ICQ Status Checker v.1.7.3');
  if wndMain <> 0 then
  begin
    wndChild := FindWindowEx(wndMain, 0, 'ThunderRT6Frame', nil);
    wndChild := FindWindowEx(wndChild, 0, 'ThunderRT6PictureBoxDC', nil);
    wndChild := FindWindowEx(wndChild, 0, 'ThunderRT6Frame', nil);
    wndChild := FindWindowEx(wndChild, 0, 'ThunderRT6PictureBoxDC', nil);
    if wndChild <> 0 then
    begin
      ShowMessage('Window Handle: ' + IntToStr(wndChild));
     // FlashControl(wndChild); // internal function
    end;
  end;

  Memo1.Text:=gettext(wndchild);
end;

DeddyH 7. Mär 2011 15:50

AW: Fensterinhalt eines anderen Programm übernehmen
 
PictureBox? Das klingt fast so, als wäre das kein WinControl in dem Sinne, sondern der Text wird zur Laufzeit "gemalt". Das ist aber nur eine Vermutung.

wallwriht 7. Mär 2011 16:50

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von DeddyH (Beitrag 1086572)
PictureBox? Das klingt fast so, als wäre das kein WinControl in dem Sinne, sondern der Text wird zur Laufzeit "gemalt". Das ist aber nur eine Vermutung.

Ok ich probier mal ein anderes Fenster



Also:

DeddyH hatte recht, das lag daran das es eine Picturebox ist. Mit nem Edit klappts super. Kann ich nicht irgendwie den Text aus ner Picturebox auch rausholen... Is ja praktisch wie ein canvas text out was ich einlesen will.....

wallwriht 8. Mär 2011 08:53

AW: Fensterinhalt eines anderen Programm übernehmen
 
Vielleicht lässt sich das auch lösen, wenn ich irgendwie die Farben in der Picturebox rausbekommen könnte, also ob es grün gibt oder ähnliches... gibt es das?

DeddyH 8. Mär 2011 09:11

AW: Fensterinhalt eines anderen Programm übernehmen
 
Ich fürchte, Du unterschätzt den Aufwand. Um den Text herauszubekommen, bräuchtest Du ja ein OCR.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 Uhr.
Seite 2 von 3     12 3      

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