C# 如何移动/排列所有桌面窗口?(即“展示堆叠的窗户”;

C# 如何移动/排列所有桌面窗口?(即“展示堆叠的窗户”;,c#,windows,winapi,C#,Windows,Winapi,在C#(使用Win32 API或其他什么)中,是否可以以编程方式排列所有打开的应用程序窗口 例如,在Windows 7中,如果右键单击任务栏,则有一个名为“显示堆叠的窗口”和“并排显示窗口”的选项 这正是我试图通过代码复制的内容 为了进一步解释,我想遍历所有打开的应用程序,显示主窗口,然后将其与所有其他打开的应用程序窗口一起排列在桌面/监视器上。是的,您可以使用windows API进行操作,看看这个链接,它解释了如何使用一些函数,包括允许您枚举的函数所有打开的窗户 这里有一个可以调整窗口大小

在C#(使用Win32 API或其他什么)中,是否可以以编程方式排列所有打开的应用程序窗口

例如,在Windows 7中,如果右键单击任务栏,则有一个名为“显示堆叠的窗口”和“并排显示窗口”的选项

这正是我试图通过代码复制的内容


为了进一步解释,我想遍历所有打开的应用程序,显示主窗口,然后将其与所有其他打开的应用程序窗口一起排列在桌面/监视器上。

是的,您可以使用windows API进行操作,看看这个链接,它解释了如何使用一些函数,包括允许您枚举的函数所有打开的窗户

这里有一个可以调整窗口大小和移动窗口的功能


您正在寻找的函数是。一些示例:

TileWindows(NULL, MDITILE_HORIZONTAL, NULL, 0, NULL); // "Show windows stacked"
TileWindows(NULL, MDITILE_VERTICAL, NULL, 0, NULL); // "Show windows side-by-side"
如果要级联窗口,可以使用:

CascadeWindows(NULL, MDITILE_ZORDER, NULL, 0, NULL); // "Cascade windows"