[Back to INTERRUP SWAG index]  [Back to Main SWAG index]  [Original]

{
BRYCE OSTENSON

> I am looking for a way to diable the use of the control break and control
> alt delete features.

BTW: Simple concept...  Here's how it works - When the program begins,
SavedInt23 is assigned to the original C-Break interrupt...  When the
SetCtrlBreak procedure is called with Status equaling false, the C-Break
interrupt is assigned to a CBreakHandler which has no substance...  Thus
when C-Break is called it does nothing.  When SetCtrlBreak is called
with Status equaling false, Interrupt 23h is assigned to the default
C-Break handler.
}

UNIT TBUtil;

INTERFACE

Uses
  Dos;

Var
  SavedInt23 : Pointer;
  CBreak     : Boolean;

Procedure SetCtrlBreak(Status : Boolean);
Function  GetCtrlBreak : Boolean;

IMPLEMENTATION

Procedure CBreakHandler; INTERRUPT;
Begin
End;

Procedure SetCtrlBreak(Status : Boolean);
Begin
  If Status then
    SetIntVec($23, SavedInt23);
  Else
    SetIntVec($23, @CBreakHandler);
  CBreak := Status;
End;

Function GetCtrlBreak : Boolean;
Begin
  GetCtrlBreak := CBreak;
End;

Begin
  CBreak := True;
  GetIntVec($23, SavedInt23); { Save the Ctrl-Break handler. }
End.


[Back to INTERRUP SWAG index]  [Back to Main SWAG index]  [Original]