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

7
我想在我的桌面上打开多个控制台程序。 每次我都要做以下步骤: 1.右键单击桌面->屏幕分辨率->检测(4个监视器)。 2.打开16个不同的控制台程序(每个屏幕4个)。 3.点击所有窗口以正确获取Z顺序。 3.右键点击任务栏->显示窗口堆叠(将所有16个窗口组织成完美的正方形,每个屏幕上有4个窗口,按照z-index顺序排列)。
有没有办法通过编程方式完成其中的一部分,以帮助加快这个过程?
1个回答

18

你可以使用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。你可以通过在网络上搜索PInvoke和函数名称来找到DllImport语法。请遵循那里和MSDN中的说明。


工作得非常好!!非常感谢 - 你让我的生活变得更加轻松。愿你被祝福满满。 - TeamBreezy
似乎无法与VS2019一起使用。API在第一轮中有效,但不会移动x,y窗口。然后在第二次运行时,应用程序会锁定,而不会执行Main()函数。 - user1853517
@Chizl 对我来说很好用。我正在使用VS2022,但我怀疑它在VS2019中出现问题并被后来修复了。很可能是你有其他类型的问题。 - Mike Nakis
1
@Chizl 没问题。删除评论。 - Mike Nakis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接