【发布时间】:2021-03-01 18:04:03
【问题描述】:
我正在尝试在 VB.NET 中编写控制台应用程序(VS Studio Community 2019 & .Net framework 4.8) 我无法让它正确显示 ANSI Escape 序列。 我知道this suggestion 并已应用它。 (没有区别)
我可以使用设置颜色
Console.ResetColor()
Console.ForegroundColor = ConsoleColor.Red
和光标定位,使用
Console.SetCursorPosition(origCol + x, origRow + y)
Console.Write(s)
当我尝试这样做时
Console.WriteLine("\u001b[31mHello World!\u001b[0m")
它只是将其原始打印出来,而不解释 ANSI 序列。
Console.OutputEncoding = Text.Encoding.XXX 只给我有限的 XXX 选项,包括 Ascii、UTF8、16、32 和 Unicode。
我已经阅读了This 关于“控制台虚拟终端序列”的文章,这似乎是微软对 ANSI 代码的术语。本文参考setConsoleMode。
还有这个C的sn-p,我在vb.net中找不到对应的
// Set output mode to handle virtual terminal sequences
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
if (hOut == INVALID_HANDLE_VALUE)
{
return GetLastError();
}
DWORD dwMode = 0;
if (!GetConsoleMode(hOut, &dwMode))
{
return GetLastError();
}
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
if (!SetConsoleMode(hOut, dwMode))
{
return GetLastError();
}
我猜这两个之一可能是我的问题的答案,但我不知道如何在 VB.net 中处理此信息。
【问题讨论】: