Эти проклятые пользователи и их свернутые окна.
В C #, если у меня есть HWND окна, есть ли способ узнать, видно ли оно на рабочем столе?
Функция GetWindowPlacement возвращает структуру WINDOWPLACEMENT, которая имеет поле showCmd:
GetWindowPlacement
WINDOWPLACEMENT
showCmd
Определяет текущее состояние показа окна.
Детали этого читаются так, как будто вы устанавливаете состояние окна, но я подозреваю, что это потому, что они были скопированы откуда-то еще и не обновлены.
Есть свойство Visible, но оно проверяет видимый флаг, оно не сообщает вам, закрыто ли окно другим окном, или за пределами экрана и т. Д. Это намного сложнее. У Раймонда Чена есть несколько советов:
Visible
http://blogs.msdn.com/oldnewthing/archive/2003/09/02/54758.aspx
http://blogs.msdn.com/oldnewthing/archive/2003/08/29/54728.aspx
bool isHwndVisible = Control.FromHandle(handle).Visible