有没有办法检测和存储所有打开的窗口的位置和大小,以及它们的状态(最小化,最大化等)
我从来没有开发任何以这种方式从实际操作系统获取信息的东西.是否需要调用Windows API并涉及非托管代码?
如果这不清楚请注意,我会尽量详细说明.
解决方法
调用
EnumWindows循环遍历所有窗口,然后调用
GetWindowPlacement以获取信息.它将需要PInvoke到Windows API,但并不困难,只需在
PInvoke网站上找到所有信息.
Btw,这是一个codeproject文章,找到一个特定的窗口和获取/设置它的显示状态,可能是一个很好的起点(代码在VB.Net,但你可能只是使用一个在线VB.Net C#转换器,如果你不知道VB.Net)