Delphi-PRAXiS
Seite 1 von 3  1 23      

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)

wallwriht 5. Mär 2011 13:45

Fensterinhalt eines anderen Programm übernehmen
 
Hallo zusammen,
Ich würde gerne aus einem anderen Programm etwas übernehmen, was dort im Fenster steht oder auch den ganzen Fensterinhalt. Ich habe den Name des Fensters. Kann man irgendwie nach dem man das Fenster gefunden hat den text als string oder ähnliches bekommen?
lg
wallwriht

toms 5. Mär 2011 14:11

AW: Fensterinhalt eines anderen Programm übernehmen
 
Hallo,

Sofern das Control ein Handle besitzt mit SendMessage + WM_GETTEXT.

wallwriht 6. Mär 2011 17:20

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von toms (Beitrag 1086086)
Hallo,

Sofern das Control ein Handle besitzt mit SendMessage + WM_GETTEXT.

Meinst du erst mit findwindow das fenster als handle bekommen und dann wie weiter????

mit:

sendmessage(handle); oder wie?
lg

Luckie 6. Mär 2011 17:55

AW: Fensterinhalt eines anderen Programm übernehmen
 
Guck dir die Hilfe zu WM_GETTEXT im MSDN an (http://msdn.microsoft.com/en-us/library/default.aspx) oder such mal im Forum nach FindWindow, FindWindowEx und WM_GETTEXT.

wallwriht 6. Mär 2011 19:32

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von Luckie (Beitrag 1086264)
Guck dir die Hilfe zu WM_GETTEXT im MSDN an (http://msdn.microsoft.com/en-us/library/default.aspx) oder such mal im Forum nach FindWindow, FindWindowEx und WM_GETTEXT.

ok danke bin dran

wallwriht 7. Mär 2011 08:38

AW: Fensterinhalt eines anderen Programm übernehmen
 
Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
textlength: Integer;
wnd:hwnd;
pcwintext:pchar;
begin
wnd:= Findwindow(nil,'was auch immer');


Memo1.Text:=gettext(wnd);


end;






function Tform1.GetText(Wnd: HWND): string;
var
textlength: Integer;
Text: PChar;
begin
textlength := SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0);
if textlength = 0 then Result := ''
else
begin
GetMem(Text, textlength + 1);
SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text));
Result := Text;
FreeMem(Text);
end;
end;

das hab ich jtztmal klappt aber nicht in dem Sinne in dem ich es Will.
Wenn ich zB ICQ bei findwindow reinschreib kommt im Memo ICQ raus aber da soll ja der Fensterinhalt rauskommen... wie mache ich das?

DeddyH 7. Mär 2011 08:42

AW: Fensterinhalt eines anderen Programm übernehmen
 
Lad Dir WinSpy herunter und lass Dir davon den Code zum Ermitteln des richtigen Handles generieren.

wallwriht 7. Mär 2011 08:55

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von DeddyH (Beitrag 1086368)
Lad Dir WinSpy herunter und lass Dir davon den Code zum Ermitteln des richtigen Handles generieren.

Vielen dank schonmal klappt auch, ich bekomme dann eine Nummer für das Handle, wie muss ich damit weitermachen?

DeddyH 7. Mär 2011 09:40

AW: Fensterinhalt eines anderen Programm übernehmen
 
Die Nummer ist (hoffentlich) das Handle, welches Du für WM_GETTEXT verwenden kannst.

wallwriht 7. Mär 2011 10:03

AW: Fensterinhalt eines anderen Programm übernehmen
 
Zitat:

Zitat von DeddyH (Beitrag 1086398)
Die Nummer ist (hoffentlich) das Handle, welches Du für WM_GETTEXT verwenden kannst.

Gut danke....


Delphi-Quellcode:

function Tform1.GetText(Wnd: HWND): string;
var
textlength: Integer;
Text: PChar;
begin
textlength := SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0);
if textlength = 0 then Result := ''
else
begin
GetMem(Text, textlength + 1);
SendMessage(Wnd, WM_GETTEXT, textlength + 1, Integer(Text));
Result := Text;
FreeMem(Text);
end;
end;





Das ist die Funktion mit der ich das gettext benutzen will. das Ergebnis ist aber '';
also leer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.
Seite 1 von 3  1 23      

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