Có một biến CheckBreak trong unit Crt, luôn được đặt mặc định là true. Muốn tắt nó ta dùng lệnh
uses Crt;
:
CheckBreak := false;
:
Ngoài ra việc tắt kiểm tra ngắt cho phép bạn bắt phím mỗi khi phím ngắt được bấm xuống như là tổ hợp phím Ctrl-C
Cách khác bạn có thế dùng chương trình bắt phím sau:
procedure TEST;
var key : char;
begin
repeat
if KeyPressed then
begin
key := ReadKey;
if key=#3 then
begin {ctrl-c or break}
writeln ('Break');
halt(1);
end; { Terminate the program, or whatever }
end; {if}
until false;
end; (* test *)
Một cách khác, bạn có thể ngăn cấm Ctrl-Break và Ctrl-C bằng ngắt. Sau đây là một ví dụ:
uses Dos;
var OldIntr1B : pointer; { Ctrl-Break ađress }
OldIntr23 : pointer; { Ctrl-C interrupt handler }
answer : string; { For readln test }
{$F+}
procedure NewIntr1B (flags,cs,ip,ax,bx,cx,dx,si,di,ds,es,bp : word);
Interrupt;
{$F-} begin end;
{$F+}
procedure NewIntr23 (flags,cs,ip,ax,bx,cx,dx,si,di,ds,es,bp : word);
Interrupt;
{$F-} begin end;
begin
GetIntVec ($1B, OldIntr1B);
SetIntVec ($1B, @NewIntr1B); { Cấm Ctrl-Break }
GetIntVec ($23, OldIntr23);
SetIntVec ($23, @NewIntr23); { Cấm Ctrl-C }
writeln ('Try breaking, disabled');
readln (answer);
SetIntVec ($1B, OldIntr1B); { Cho phép Ctrl-Break }
SetIntVec ($23, OldIntr23); { Cho phép Ctrl-C }
writeln ('Try breaking, enabled');
readln (answer);
writeln ('Doné);
end.