![]() |
Re: Memo Text von anderem Fenster in das Memo meines program
hat noch nie jemand sowas gemacht? also ausserhalb seines progs irgendwi daten geholt?
weiss zmindest jemand wie das heisst was ich vorhabe? dann werd ich mal googlen, wenn ich in der suche "memo text von einem anderen programm ins eigene memo" eingeben würde würds natürlich keine ergebnisse geben. Also wie heisst das :)? |
Re: Memo Text von anderem Fenster in das Memo meines program
Finde mit FindWindow / EnumWindows das Parent-Fenster. Finde mit FindWindowEx / EnumChildWindows das RichEdit oder Memo. Sende eine WM_GETTEXTLENGTH Nachricht mit SendMessage an das RichEdit / Memo, Rückgabewert der Funktion SendMessage ist in diesem Fall die anzahl der Zeichen. Reserviere entsprechend Speicher für eine PChar Variable. Hol dir den Inhalt, in dem du WM_GETTEXT an das RichEdit / Memo schickst. Den Inahlt findest du jetzt im lParam welcher ein Zeiger auf deinen zuvor reservierten Speicher vom Typ PChar ist.
Im PseudoCode:
Code:
hRichEdit ist das Handle von dem RichEdit im anderen Programm, Memo1 das memo in deinem Programm.
var
len: Integer; Buffer: PChar; begin len := SendMessage(hRichEdit, WM_GETTEXTLENGTH, 0, 0); GetMem(Buffer, len+1); try SendMessage(hRichEdit, WM_GETTEXT, len+1, Integer(@Buffer)); Memo1.Text := String(Buffer); finally FreeMem(Buffer, len+1); end; |
Re: Memo Text von anderem Fenster in das Memo meines program
hoi,
das ist doch mal was, danke :) gleich mal probieren |
Re: Memo Text von anderem Fenster in das Memo meines program
hoi,
also das "teil" das den text im spiel hat ist eine ListBox (laut resourcen hacker). Ich habe dein beispiel mal angepasst gehabt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hList, WND: HWND; len: integer; Buffer: PChar; begin WND := FindWindow(nil, 'Tiberian Sun'); hList := FindWindowEx(WND, 0, 'LISTBOX', nil); len := SendMessage(hList, WM_GETTEXTLENGTH, 0, 0); GetMem(Buffer, len+1); try SendMessage(hList, LB_GETTEXT, len+1, Integer(@Buffer)); Memo1.Text := String(Buffer); finally FreeMem(Buffer, len+1); end; end; ich weiss nicht ob "LB_GETTEXT" richtig war, aber wenn ich den button drücke bekomme ich im memo nichts weiter ausser "&E" angezeigt, woher kommt das? |
Re: Memo Text von anderem Fenster in das Memo meines program
Weil du in einer Schleife den Text von jedem Item einzeln holen musst:
![]() Du solltest dir mal das Listbox Tutorial aus meinen "Win32API Tutorials für Delphi" ankucken. |
Re: Memo Text von anderem Fenster in das Memo meines program
hoi luckie, wo genau find ich die? ich finde nur die win32api tuts.
btw: ich habe mal folgendes zum test benutzt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var hlist, wnd: HWND; begin wnd := FindWindow('Tiberian Sun', 'Tiberian Sun'); hlist := FindWindowEx(wnd, 0, 'LISTBOX', nil); ShowMessage(IntToStr(wnd)); ShowMessage(IntToStr(hlist)); end; das 2te showmessage zeigt mir "0" an, aber das das ne Listbox ist stimmt 100%, wieso bekomm ich die dann? |
Re: Memo Text von anderem Fenster in das Memo meines program
versuchst mal mit childwindows
|
Re: Memo Text von anderem Fenster in das Memo meines program
wie meinst du das, bzw wie, ist das eine funktion? (sehen tu ich keine)
|
Re: Memo Text von anderem Fenster in das Memo meines program
Zitat:
|
Re: Memo Text von anderem Fenster in das Memo meines program
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz