当我点击正在运行的控制台时,程序会冻结直到我完成选择。
我发现许多语言都可以使用“SetConsoleMode”来禁用它,但是在Delphi中找不到相应的代码。
当我点击正在运行的控制台时,程序会冻结直到我完成选择。
我发现许多语言都可以使用“SetConsoleMode”来禁用它,但是在Delphi中找不到相应的代码。
这应该很简单:
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.