How to programmatic disable C# Console Application's Quick Edit mode?

前端 未结 5 1027
庸人自扰
庸人自扰 2020-11-27 14:34

I,ve tried several solutions found, like the one ->

http://www.pcreview.co.uk/forums/console-writeline-hangs-if-user-click-into-console-window-t1412701.html

5条回答
  •  天命终不由人
    2020-11-27 15:16

    By used combination of codes on below, I'm be able to enable or disable the Quick Edit mode.

    const int ENABLE_QUICK_EDIT = 0x0040;
    
    // STD_INPUT_HANDLE (DWORD): -10 is the standard input device.
    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 int lpMode);
    
    [DllImport("kernel32.dll")]
    static extern bool SetConsoleMode(IntPtr hConsoleHandle, int dwMode);
    

    To enable, simple do currentConsoleMode &= ENABLE_QUICK_EDIT;

    And to disable, do currentConsoleMode &= ~ENABLE_QUICK_EDIT

    And then call SetConsoleMode.

提交回复
热议问题