📅  最后修改于: 2023-12-03 15:14:28.654000             🧑  作者: Mango
在开发控制台应用程序时,我们可能需要控制控制台窗口的位置。在C#中,我们可以使用SetWindowPos
函数来更改控制台窗口的位置。下面是实现这个功能的完整代码:
using System;
using System.Runtime.InteropServices;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
SetWindowPos(GetConsoleWindow(), 0, 100, 100, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
Console.ReadLine();
}
private const int SWP_NOSIZE = 0x0001;
private const int SWP_NOZORDER = 0x0004;
[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int cx, int cy, int uFlags);
}
}
我们在代码中引用了两个Dll库,即kernel32.dll
和user32.dll
。
GetConsoleWindow()
函数从kernel32.dll
中调用。这个函数用于获取当前控制台应用程序的句柄。我们需要这个句柄,因为我们要使用SetWindowPos
函数来改变控制台窗口的位置。
SetWindowPos()
函数是从user32.dll
中调用的。该函数接受六个参数,其中四个是位置参数(x
,y
,cx
和 cy
)。我们可以使用 0
来取代 cx
和 cy
的值,以防止改变控制台窗口的大小。除此之外,我们还可以使用 SWP_NOSIZE
和 SWP_NOZORDER
常数来告诉函数不要改变窗口的大小或显示顺序。
将上述代码复制到您的新建控制台应用程序的Program.cs
文件中,并确保它位于类和命名空间中。然后在应用程序的主方法中调用 SetWindowPos
函数。这将改变控制台窗口的位置.
使用上述代码,在您的控制台应用程序中,您可以轻松地改变控制台窗口的位置,从而使其更符合您的应用程序的需求。