0
Comment collecter tous les gestionnaires de fenêtres en C#. J'ai besoin de toutes les fenêtres (pas seulement les parents) Merci,Récupérer tous les gestionnaires de fenêtres
Comment collecter tous les gestionnaires de fenêtres en C#. J'ai besoin de toutes les fenêtres (pas seulement les parents) Merci,Récupérer tous les gestionnaires de fenêtres
Essayez la classe d'utilitaires suivante. Étant donné un handle à une fenêtre, il retournera toutes les fenêtres enfants associées.
public class WindowFinder
{
private class Helper
{
internal List<IntPtr> Windows = new List<IntPtr>();
internal bool ProcessWindow(IntPtr handle, IntPtr parameter)
{
Windows.Add(handle);
return true;
}
}
private delegate bool EnumWindowProc(IntPtr hWnd, IntPtr parameter);
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowProc lpEnumFunc, IntPtr lParam);
public static List<IntPtr> GetChildWindows(IntPtr parentWindow)
{
var helper = new Helper();
EnumChildWindows(parentWindow, helper.ProcessWindow, IntPtr.Zero);
return helper.Windows;
}
}
Pouvez-vous élaborer le scénario, qu'est-ce que vous cherchez exactement? –
En général, j'ai un gestionnaire de fenêtre et je voudrais vérifier s'il a un dialogue de blocage, donc je cherche une fenêtre que ma fenêtre est le parent, et a le style WS_EX_DLGMODALFRAME. – Guy