home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pctchnqs / 1991 / number6 / prtscr.pas < prev    next >
Pascal/Delphi Source File  |  1990-12-30  |  1KB  |  62 lines

  1. {  PRTSCR.PAS - Unit to allow programs to 'see' Print Screen key   }
  2. {  Copyright 1990 S/Wizardry, Ltd.                                 }
  3. UNIT PrtScr;
  4.  
  5. INTERFACE
  6.  
  7. CONST
  8.    PrtScrKey = $3700;
  9.  
  10.  
  11. IMPLEMENTATION
  12.  
  13. USES DOS;
  14.  
  15. VAR
  16.    SaveInt5 : POINTER;
  17.    SaveExitProc : POINTER;
  18.  
  19. CONST
  20.    Int5Installed : BOOLEAN = FALSE;
  21.  
  22.  
  23. PROCEDURE Int5; INTERRUPT;
  24. VAR
  25.    Regs : REGISTERS;
  26. BEGIN
  27.    Regs.AH := $5;
  28.    Regs.CX := PrtScrKey;
  29.    INTR($16,Regs);
  30. END;
  31.  
  32. PROCEDURE InstallInt5;
  33. BEGIN
  34.    IF NOT Int5Installed THEN BEGIN
  35.       GetIntVec($5, SaveInt5);
  36.       SetIntVec($5, @Int5);
  37.       Int5Installed := TRUE;
  38.    END;
  39. END;
  40.  
  41. PROCEDURE RestoreInt5;
  42. BEGIN
  43.    IF Int5Installed THEN BEGIN
  44.       SetIntVec($5,SaveInt5);
  45.       Int5Installed := FALSE;
  46.    END;
  47. END;
  48.  
  49. {$F+}
  50. PROCEDURE NewExitProc;
  51. BEGIN
  52.    ExitProc := SaveExitProc;
  53.    RestoreInt5;
  54. END;
  55. {$F-}
  56.  
  57. BEGIN {UNIT initialization}
  58.    InstallInt5;
  59.    SaveExitProc := ExitProc;
  60.    ExitProc := @NewExitProc;
  61. END.
  62.