HWND виден? - PullRequest
       31

HWND виден?

4 голосов
/ 15 ноября 2009

Эти проклятые пользователи и их свернутые окна.

В C #, если у меня есть HWND окна, есть ли способ узнать, видно ли оно на рабочем столе?

Ответы [ 3 ]

5 голосов
/ 16 ноября 2009

Функция GetWindowPlacement возвращает структуру WINDOWPLACEMENT, которая имеет поле showCmd:

Определяет текущее состояние показа окна.

Детали этого читаются так, как будто вы устанавливаете состояние окна, но я подозреваю, что это потому, что они были скопированы откуда-то еще и не обновлены.

3 голосов
/ 16 ноября 2009

Есть свойство Visible, но оно проверяет видимый флаг, оно не сообщает вам, закрыто ли окно другим окном, или за пределами экрана и т. Д. Это намного сложнее. У Раймонда Чена есть несколько советов:

http://blogs.msdn.com/oldnewthing/archive/2003/09/02/54758.aspx

http://blogs.msdn.com/oldnewthing/archive/2003/08/29/54728.aspx

0 голосов
/ 16 ноября 2009
bool isHwndVisible = Control.FromHandle(handle).Visible
...