C# · 12月 29, 2021

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

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

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

如果这不清楚请注意,我会尽量详细说明.

解决方法 调用 EnumWindows循环遍历所有窗口,然后调用 GetWindowPlacement以获取信息.它将需要PInvoke到Windows API,但并不困难,只需在 PInvoke网站上找到所有信息.

Btw,这是一个codeproject文章,找到一个特定的窗口和获取/设置它的显示状态,可能是一个很好的起点(代码在VB.Net,但你可能只是使用一个在线VB.Net C#转换器,如果你不知道VB.Net)