Как отключить режим быстрого редактирования консоли - PullRequest
3 голосов
/ 27 марта 2020

когда я нажимаю на работающую консоль, она замораживает приложение до тех пор, пока я не завершу sh выбор,

Я нашел, как отключить его на многих языках, используя "SetConsoleMode", но не смог найти код для Delphi

1 Ответ

7 голосов
/ 27 марта 2020

Это должно быть просто:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  Windows, System.SysUtils;

const
  ENABLE_QUICK_EDIT_MODE = $40;
  ENABLE_EXTENDED_FLAGS = $80;

var
  h: NativeUInt;
  OldMode: Cardinal;

begin

  h := GetStdHandle(STD_INPUT_HANDLE);
  if not (
    GetConsoleMode(h, OldMode) and
    SetConsoleMode(h, OldMode and not ENABLE_QUICK_EDIT_MODE or ENABLE_EXTENDED_FLAGS)
  )
  then
    RaiseLastOSError;

  // Do stuff

end.
...