Получение дескрипторов всех элементов управления в окне с использованием его имени класса

Я могу получить ручки, используя местоположение мыши, щелкнув. Но мне нужно найти дескрипторы всех элементов управления в окне, используя его имя класса, не щелкая. Я должен получить их, пока окно открыто. Является ли это возможным?


person Onur Adıgüzel    schedule 13.07.2015    source источник


Ответы (2)


вы можете комбинировать два популярных API:

[DllImport("user32.Dll")]
private static extern Boolean EnumChildWindows(int hWndParent, PChildCallBack lpEnumFunc, int lParam);

Эта функция предназначена для получения всех "дочерних" окон внутри окна. Второй

[DllImport("User32.Dll")]
private static extern void GetClassName(int hWnd, StringBuilder s, int nMaxCount);

Используйте этот метод, чтобы отфильтровать, имеет ли перечисляемое окно определенное имя класса.

Удачного кодирования!

person George Lica    schedule 13.07.2015

Да, вам нужно использовать различные вызовы API, начиная с EnumWindows и, возможно, GetClassName.

person Lloyd    schedule 13.07.2015