gpt4 book ai didi

c# - 相对于屏幕重新定位控制台窗口

转载 作者:太空狗 更新时间:2023-10-29 23:13:48 24 4
gpt4 key购买 nike

我正在开发一个 C# 控制台应用程序,我使用 Console.WindowHeight 增加了窗口的高度,但现在当应用程序首次打开时,窗口底部往往会离开屏幕。

有没有办法在控制台应用程序中设置控制台窗口相对于屏幕的位置?我查看了 Console.SetWindowPosition,但这只会影响控制台窗口相对于“屏幕缓冲区”的位置,这似乎不是我想要的。

感谢您的帮助!

最佳答案

这里的解决方案使用窗口句柄和导入的 SetWindowPos() native 函数来实现您正在寻找的内容:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;


namespace ConsoleWindowPos
{
static class Imports
{
public static IntPtr HWND_BOTTOM = (IntPtr)1;
// public static IntPtr HWND_NOTOPMOST = (IntPtr)-2;
public static IntPtr HWND_TOP = (IntPtr)0;
// public static IntPtr HWND_TOPMOST = (IntPtr)-1;

public static uint SWP_NOSIZE = 1;
public static uint SWP_NOZORDER = 4;

[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, uint wFlags);
}

class Program
{

static void Main(string[] args)
{
var consoleWnd = System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
Imports.SetWindowPos(consoleWnd, 0, 0, 0, 0, 0, Imports.SWP_NOSIZE | Imports.SWP_NOZORDER);
System.Console.ReadLine();
}
}
}

代码将控制台窗口移动到屏幕的左上角,既不改变 z 顺序也不改变窗口的宽度/高度。

关于c# - 相对于屏幕重新定位控制台窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com