Wie kann ich GetNextWindow () in C # verwenden?

7

Die Microsoft WinAPI-Dokumentation scheint darauf hinzudeuten, dass user32.dll eine Funktion namens % enthält. co_de% , das erlaubt, offene Fenster in ihrer Z-Reihenfolge aufzuzählen, indem diese Funktion wiederholt aufgerufen wird.

Pinvoke gibt mir normalerweise die notwendige GetNextWindow() Anweisung, um WinAPI-Funktionen aus C # zu verwenden. Für DllImport ist jedoch kein Eintrag vorhanden. Also habe ich versucht, mein eigenes zu konstruieren:

%Vor%

Leider, wenn ich versuche, dies zu nennen, bekomme ich ein GetNextWindow() Sprichwort:

%Vor%

Dies scheint nur für EntryPointNotFoundException zu gelten; andere Funktionen, die auf Pinvoke aufgeführt sind, sind in Ordnung. Ich kann GetNextWindow() und GetTopWindow() aufrufen, ohne eine Ausnahme auszulösen.

Natürlich, wenn Sie eine völlig andere Art vorschlagen können, Fenster in ihrer aktuellen Z-Reihenfolge aufzuzählen, bin ich froh, das auch zu hören.

    
Timwi 28.04.2009, 14:33
quelle

2 Antworten

24

GetNextWindow () ist eigentlich ein Makro für GetWindow () und nicht eine tatsächliche API-Methode. Es ist für die Abwärtskompatibilität mit der Win16-API.

%Vor%

(Von Pinvoke.net )

    
David Brown 28.04.2009, 14:36
quelle
2

GetNextWindow ist ein C ++ - Makro, das GetWindow aufruft, sodass Sie es nicht von .NET aufrufen können. Rufen Sie stattdessen GetWindow auf.

Von MSDN :

  

Die Verwendung dieser Funktion entspricht dem Aufruf der Funktion GetWindow mit dem Flag GW_HWNDNEXT oder GW_HWNDPREV set

    
Richard Szalay 28.04.2009 14:36
quelle

Tags und Links