C# 以编程方式设置控制台窗口的大小和位置

C# 以编程方式设置控制台窗口的大小和位置,c#,windows,console,position,z-index,C#,Windows,Console,Position,Z Index,我想在桌面上打开多个控制台程序。 这就是我每次都要做的: 1.右键单击桌面->屏幕分辨率->检测(4台显示器)。 2.打开16个不同的控制台程序(每个屏幕4个)。 3.单击所有窗口以正确获取Z顺序。 3.右键单击任务栏->显示堆叠窗口(将所有16个窗口组织成完美的正方形,每个屏幕上4个窗口按z索引顺序排列) 是否有一种方法可以通过编程来完成其中的一部分,以帮助更快地完成此操作?您可以使用windows API来移动控制台窗口。使用DllImport声明要使用的WinApi函数: [DllImpo

我想在桌面上打开多个控制台程序。 这就是我每次都要做的: 1.右键单击桌面->屏幕分辨率->检测(4台显示器)。 2.打开16个不同的控制台程序(每个屏幕4个)。 3.单击所有窗口以正确获取Z顺序。 3.右键单击任务栏->显示堆叠窗口(将所有16个窗口组织成完美的正方形,每个屏幕上4个窗口按z索引顺序排列)


是否有一种方法可以通过编程来完成其中的一部分,以帮助更快地完成此操作?

您可以使用windows API来移动控制台窗口。使用DllImport声明要使用的WinApi函数:

[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
然后叫他们:例如

IntPtr ptr = GetConsoleWindow();
MoveWindow(ptr, 0, 0, 1000, 400, true);

您可以进一步使用WinApi函数作为
SetWindowPos
。通过在web上搜索
PInvoke
和函数名,可以找到dlliport语法。按照那里和MSDN中的说明进行操作。

工作起来就像炸弹一样!!非常感谢-你让我的生活轻松了很多。愿你充满祝福,因为你似乎不适合VS2019。API在第一轮工作,但不使用x,y移动窗口。然后在第二次运行时,应用程序在执行Main()之前锁定。。