使用.NET(C#)获取所有打开窗口的位置和大小

Dan*_*ris 10 .net windows

有没有办法检测和存储所有打开的窗口的位置和大小,以及它们的状态(最小化,最大化等)

我从来没有开发出以这种方式从实际操作系统获取信息的任何东西.是否需要调用Windows API并涉及非托管代码?

如果不清楚请发表评论,我会尽力详细说明.

Han*_*son 9

调用EnumWindows遍历所有窗口,然后调用GetWindowPlacement以获取信息.它需要PInvoke到Windows API,但它并不困难,只需在PInvoke站点找到所有信息.

顺便说一句,这是一个代码项目文章,用于查找特定窗口并获取/设置它的显示状态,可能是一个很好的起点(代码在VB.Net中,但你可能只是使用一个在线VB.Net来C#转换器,如果你不知道VB.Net)