Используя pinvoke, я легко могу найти дескриптор окна с определенным классом и именем:
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
IntPtr hWnd = FindWindow("Foo Class", "Foo Window");
Приведенный выше код отлично работает, если есть только 0 или 1 подходящих окон.Однако неуправляемое приложение, с которым я работаю, охватывает несколько окон.Вызов FindWindow несколько раз возвращает один и тот же дескриптор окна каждый раз.
Что мне нужно сделать, чтобы получить ВСЕ окна с определенным классом и именем.
Я также приму ответ для альтернативного решения той же цели.(Я думаю, что, возможно, это можно сделать, найдя идентификатор процесса приложения, а затем получив все окна верхнего уровня и отфильтровав нужные).