Tôi phải làm thế nào để ngăn hoặc bắt phím ngắt (break key) trong Turbo Pascal để chương trình của tôi không bị ngắt?

tu
tu
Trả lời 16 năm trước
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.
trương kiều thanh thanh
trương kiều thanh thanh
Trả lời 15 năm trước
khung