Я создаю замену Alt-Tab для Vista, но у меня возникли проблемы со списком всех активных программ.
Я использую EnumWindows для получения списка Windows , но этот список огромен. Он содержит около 400 элементов, хотя у меня открыто только 10 окон. Кажется, это hwnd для каждого элемента управления и многого другого.
Поэтому мне нужно как-то отфильтровать этот список, но я не могу этого сделать. точно так же, как это делает Alt-Tab.
Это код, который я сейчас использую для фильтрации списка. Это работает очень хорошо, но у меня появляются некоторые нежелательные окна, такие как отдельные окна инструментов в Visual Studio, а также мне не хватает таких окон, как iTunes и Warcraft3.
private bool ShouldWindowBeDisplayed(IntPtr window)
{
uint windowStyles = Win32.GetWindowLong(window, GWL.GWL_STYLE);
if (((uint)WindowStyles.WS_VISIBLE & windowStyles) != (uint)WindowStyles.WS_VISIBLE ||
((uint)WindowExStyles.WS_EX_APPWINDOW & windowStyles) != (uint)WindowExStyles.WS_EX_APPWINDOW)
{
return true;
}
return false;
}
Подробнее здесь: https://stackoverflow.com/questions/210 ... t-tab-does
Перечисляйте окна, как это делает Alt-Tab. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение