tags:

views:

302

answers:

3
+3  Q: 

Is HWND visible?

Those darned users and their minimized windows.

In C#, if I have a window's HWND, is there a way to tell if it is visible on the desktop?

A: 
bool isHwndVisible = Control.FromHandle(handle).Visible
Lee
That only works for (Managed) Controls in the current Application. I think the OP is referring to another application.
Henk Holterman
+3  A: 

There's the Visible property, but that checks the visible flag, it doesn't tell you whether the window is being covered by another window, or off the screen, etc.. That's a lot more tricky. Raymond Chen has some tips, though:

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

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

Tim Sylvester
+4  A: 

The GetWindowPlacement function returns a WINDOWPLACEMENT structure which has a field showCmd:

Specifies the current show state of the window.

The details of this read as though you would be setting the window state, but I suspect that this is because they've been copied from somewhere else and not updated.

ChrisF
Phew thanks, spent at least 10 minutes of boring googling to find out how the heck one is supposed to check window visibility via WinAPI... The name is a little obscure and of course the documentation for how to hide a window doesn't link to it...
romkyns