是否可以在 C# 中(使用 Win32 API 或其他)以编程方式排列所有打开的应用程序窗口?
例如,在 Windows 7 中,如果您右键单击任务栏,则会有一个名为“显示堆叠的窗口”和“并排显示窗口”的选项。
这正是我试图通过代码复制的内容。
为了进一步解释,我想遍历所有打开的应用程序,显示主窗口,然后将其与所有其他打开的应用程序窗口一起排列在桌面/监视器上。
您正在寻找的功能是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"
是的,你可以使用 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