コマンドプロンプトのプロパティの簡易編集モードにチェックが入っているとそのような動作になります。
実行時に簡易編集モードを無効にするのは面倒ですが、一例をあげます。
kernel32.dllのAPIを使ってます。
C#
1class Program
2{
3 static void Main(string[] args)
4 {
5 const uint ENABLE_QUICK_EDIT = 0x0040;
6 uint consoleMode;
7 // STD_INPUT_HANDLE (DWORD): -10 is the standard input device.
8 const int STD_INPUT_HANDLE = -10;
9
10 IntPtr consoleHandle = GetStdHandle(STD_INPUT_HANDLE);
11 GetConsoleMode(consoleHandle, out consoleMode);
12
13 consoleMode &= ~ENABLE_QUICK_EDIT;
14
15 SetConsoleMode(consoleHandle, consoleMode);
16
17 for (int i = 60; 0 <= i; i--)
18 {
19 Console.CursorLeft = 0;
20 Console.Write("しばらくお待ちください:{0:D3}", i);
21 Thread.Sleep(1000);
22 }
23 }
24
25 [DllImport("kernel32.dll", SetLastError = true)]
26 static extern IntPtr GetStdHandle(int nStdHandle);
27
28 [DllImport("kernel32.dll")]
29 static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
30
31 [DllImport("kernel32.dll")]
32 static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
33}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/03 09:37