在c#中重新定义控制台调色板

时间:2010-07-10 14:27:05

标签: c#

有人可以告诉我如何在C#中重新定义控制台的调色板?

1 个答案:

答案 0 :(得分:10)

是的,这是可能的。你需要一堆P / Invoke声明来使用这样的代码:

CONSOLE_SCREEN_BUFFER_INFOEX info;
info.cbSize = sizeof(info);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfoEx(hConsole, &info);
info.ColorTable[14] = RGB(255, 128, 0);  // Replace yellow
SetConsoleScreenBufferInfoEx(hConsole, &info);
SetConsoleTextAttribute(hConsole, FOREGROUNDINTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);

访问pinvoke.net或使用P / Invoke Interop助手获取使用此代码所需的声明。