Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mit enumchildwinows arbeiten? (https://www.delphipraxis.net/6145-mit-enumchildwinows-arbeiten.html)

Diablo9876 1. Jul 2003 11:13


Mit enumchildwinows arbeiten?
 
Hallo, ich folgende Frage.

Ich hab mit Findwindow und Getwindowtext das Handle von ein Hauptfenster einer (fremd) Application gefunden.
jetzt möchte ich mich mit enumchildwindows durch die childwindows durcharbeiten bis ich den Handle von einer Editbox(Classname TEdit laut winsight32) gefunden hab.
Wie mach ich das?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
parent : HWND;
text : array[0..256] of char;
begin
parent := FindWindow('TMain', nil);
GetWindowText(parent, text, 256);
ShowMessage(text);
end;
[Edit=Sakura]Delphi-TAG geschlossen. MfG.[/Edit]

Christian Seehase 1. Jul 2003 14:00

Moin Diablo,

such' doch mal hier im Forum nach EnumWindows bzw. EnumChildWindows.
Dazu hatten wir hier schon ein paar Threads.

Ausserdem hast Du Dir da "gefährliche" Variablennamen ausgesucht.
Parent ist eine Eigenschaft von TForm, und somit kann es unter Umständen in der Prozedur zu Problemen kommen.
Bei Text ist es ähnlich. Dies gibt's z.B. als Eigenschaft vom TEdit.

Zudem wäre es vielleicht ganz sinnvoll das Array zu initialisieren, da lokale Variablen zufällig Werte enthalten. Der zurückgegebene Text kann also am Ende Datenmüll enthalten.

Zu guter letzt:
GetWindowText sollte man nicht für das Auslesen von Fremdprogrammen verwenden, sondern besser SendMessage mit WM_GETTEXT (Beispiele hierfür sind auch hier zu finden)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 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