2009-11-15 3 views
4

Эти проклятые пользователи и их минимизированные окна.Видимо HWND?

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

+2

+1 для проклятых пользователей – JohnIdol

+0

Мы все являемся пользователями и кто вам программа в любом случае, если не для пользователей? К моменту написания этой статьи у меня есть 5 свернутых окон. – chiccodoro

+0

Эхо сарказма с пяти лет. – directedition

ответ

5

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

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

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

+0

Спасибо, потратили, по крайней мере, 10 минут скучного поиска в Google, чтобы узнать, как черт должен проверять видимость окна через WinAPI ... Имя немного неясное, и, конечно, документация о том, как скрыть окно, не ссылку на него ... –

0
bool isHwndVisible = Control.FromHandle(handle).Visible 
+0

Это работает только для управляемых элементов управления в текущем приложении. Я думаю, что OP относится к другому приложению. –

3

Там в Visible собственность, но проверяет видимый флаг, он не говорит вам, является ли окно покрывается другим окном, или с экрана, и т.д .. Это намного сложнее. Raymond Chen имеет несколько советов, хотя:

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

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