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/)
-   -   Fenster und Controls suchen! (https://www.delphipraxis.net/204469-fenster-und-controls-suchen.html)

Mavarik 30. Mai 2020 14:40

Fenster und Controls suchen!
 
Hallo Zusammen!

Ich suche eine Routine, die ein Chrome Fenster per Fensterhandle findet und die Controls und Eingabe die auf diesem Fenster liegen zugreifbar macht.

Wenn man ein bisschen googled, finden man schnell die Routinen die mit EnumWindowsProc und EnumChildWindowsProc die
aktiven Fenster sucht und Controls und andere Elemente anzeigen kann.

Der Code ist oft sehr alt.

Ich habe früher diese Technik verwendet um z.B. das FritzFax Fenster oder von Brother Fax-Druckertreibern das Fester zu finden und dann die Faxnummer
per Tastatur in vorzugeben.

Leider steht jetzt im Tree oft Empty und viele Sachen können nicht mehr angezeigt werden.
Das Chrome Fenster hört zum Beispiel auf bei : Chrome_WidgetWin_1

Man kann auch ein Tool von Microsoft nehmen. (Accessibility Insight For Windows)

Diese Tool kann alle Controls anzeigen. Es muss also weiterhin gehen...

Hat jemand eine aktuellen Sourcecode der dies kann?

Grüsse

Mavarik :coder:

PS.: Es geht nicht um eine Chrome/IE DOM-Schnittstelle!

Dalai 30. Mai 2020 18:40

AW: Fenster und Controls suchen!
 
Wenn es andere Tools gibt, dann hilft es vielleicht, sich die Importtabelle dieser EXEn anzuschauen. Sowas gibt Hinweise darauf, welche API-Funktionen und aus welchen DLLs ein bestimmtes Programm nutzt. Daraus kann man dann (hoffentlich) Schlussfolgerungen ziehen.

Grüße
Dalai

himitsu 30. Mai 2020 19:00

AW: Fenster und Controls suchen!
 
Da Windows aus Fenstern besteht, kann man von jedem Programm mindestens ein Fenster finden.
OK, bei Java oder sowas komischen wie Firemonkey findet man dann im Fenster eventuell nichts mehr. (keine Edits)

Also wenn du nichts findest:
* entweder wird der Name des Fensters/Komponente bei jedem Programmstart anders benannt (z.B. mit einer dynamischen ID oder Zufallszahl im Namen)
* oder dein Programm hat nicht genügend Rechte, um auf das andere Fenster zuzugreifen


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