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 FindWindow findet nur wenn die Caption bekannt ist... (https://www.delphipraxis.net/82427-findwindow-findet-nur-wenn-die-caption-bekannt-ist.html)

FriFra 12. Dez 2006 23:24


FindWindow findet nur wenn die Caption bekannt ist...
 
Wenn ich bei findwindow die caption mit angebe finde ich das fenster:
Delphi-Quellcode:
    wnd := FindWindow('#32770', 'Copying...');
lasse ich jedoch die Caption weg, wird nichts gefundenm obwohl der Klassenname stimmt
Delphi-Quellcode:
    wnd := FindWindow('#32770', nil);
Hat jemand eine Idee, was man da machen kann? Das Problem ist, ich kenne die Caption nicht, da sie von der Sprache des installierten Windows abhängig ist und ich nicht weis, wie ich an diesen Text kommen soll..

Christian Seehase 13. Dez 2006 01:03

Re: FindWindow findet nur wenn die Caption bekannt ist...
 
Moin FriFra,

das klingt jetzt aber etwas seltsam.
Ich habe das eben mal mit D7 und D2006 ausprobiert: Auch ohne Angabe der Caption wird das Fenster gefunden.
Da #32770 ja die auch Klasse von Message-Dialogen ist, habe ich zum Testen einfach eine MessageBox erzeugt, und mir dessen Überschrift ausgelesen.

Was sagt denn GetLastError wenn das Handle 0 ist?

Olli 17. Dez 2006 04:53

Re: FindWindow findet nur wenn die Caption bekannt ist...
 
Zitat:

[in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.
... da stellt sich mir doch die Frage, welches Handle ermittelt wird, wenn es mehrere Fenster der gleichen Klasse gibt?!

Wie wäre es denn stattdessen mit einem MSDN-Library durchsuchenEnumWindows? Da könnte man dann den Prozess zuordnen, was im Zweifelsfall schonmal die Auswahl einschränkt.

FriFra 17. Dez 2006 15:08

Re: FindWindow findet nur wenn die Caption bekannt ist...
 
Zitat:

Zitat von Olli
Zitat:

[in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.
... da stellt sich mir doch die Frage, welches Handle ermittelt wird, wenn es mehrere Fenster der gleichen Klasse gibt?!

Wie wäre es denn stattdessen mit einem MSDN-Library durchsuchenEnumWindows? Da könnte man dann den Prozess zuordnen, was im Zweifelsfall schonmal die Auswahl einschränkt.

bei mir wird kein Fenster gfefunden, egal, ob eines angezeigt wird ;) :gruebel: ... gebe ich den Namen mit, klappt es

Olli 17. Dez 2006 17:00

Re: FindWindow findet nur wenn die Caption bekannt ist...
 
Zitat:

Zitat von FriFra
bei mir wird kein Fenster gfefunden, egal, ob eines angezeigt wird ;) :gruebel: ... gebe ich den Namen mit, klappt es

Schlecht. Aber hast du MSDN-Library durchsuchenEnumWindows schon probiert. In meinem EDA gibt es Beispielcode den du als Vorlage benutzen kannst.


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