Vol*_*da2 0 .net console c++-cli
我将消息记录到控制台。但我有一些有趣的效果。当我在控制台中选择一些消息时,我的 UI 挂起。当我在控制台中取消选择所有内容时,UI 将处于活动状态。我不喜欢这种行为。
有什么解决办法吗?
Console::WriteLine("Message");
Run Code Online (Sandbox Code Playgroud)
您可以以编程方式在控制台中禁用快速编辑模式:
class Program {
static void Main(string[] args) {
uint mode;
IntPtr stdIn = GetStdHandle(STD_INPUT_HANDLE);
if (GetConsoleMode(stdIn, out mode)) {
if ((mode & (uint) ConsoleModes.ENABLE_QUICK_EDIT_MODE) != 0) {
mode = mode ^ (uint) ConsoleModes.ENABLE_QUICK_EDIT_MODE;
SetConsoleMode(stdIn, mode);
}
}
int i = 0;
while (true) {
Thread.Sleep(300);
Console.WriteLine(i++);
}
}
const int STD_INPUT_HANDLE = -10;
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);
[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
[Flags()]
enum ConsoleModes : uint {
ENABLE_PROCESSED_INPUT = 0x1,
ENABLE_LINE_INPUT = 0x2,
ENABLE_ECHO_INPUT = 0x4,
ENABLE_WINDOW_INPUT = 0x8,
ENABLE_MOUSE_INPUT = 0x10,
ENABLE_INSERT_MODE = 0x20,
ENABLE_QUICK_EDIT_MODE = 0x40,
ENABLE_EXTENDED_FLAGS = 0x80,
ENABLE_AUTO_POSITION = 0x100,
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
941 次 |
| 最近记录: |