2

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

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

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

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

4

2 回答 2

5

您正在寻找的功能是TileWindows. 一些例子:

TileWindows(NULL, MDITILE_HORIZONTAL, NULL, 0, NULL); // "Show windows stacked"
TileWindows(NULL, MDITILE_VERTICAL, NULL, 0, NULL); // "Show windows side-by-side"

如果你想级联窗口,你可以使用CascadeWindows

CascadeWindows(NULL, MDITILE_ZORDER, NULL, 0, NULL); // "Cascade windows"
于 2013-04-02T19:59:52.860 回答
1

是的,你可以使用 windows API 来做,看看这个链接,它解释了如何使用一些函数,包括那些让你枚举所有打开的窗口的函数

http://www.c-sharpcorner.com/UploadFile/shrijeetnair/win32api12062005005528AM/win32api.aspx

在这里你有一个功能可以让你调整和移动一个窗口

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633534(v=vs.85).aspx

于 2013-04-02T19:52:18.090 回答