Disable and re-enable CTRL-ALT-DELETE, ALT-TAB and CTRL-ESC

by Stuart Morris

Usefull when that process really should not be interupted. Note: It can cripple the PC

&GLOBAL-DEFINE A A
&GLOBAL-DEFINE SPI_SCREENSAVERRUNNING 97
 
DEFINE VARIABLE retVal   AS INTEGER NO-UNDO.
DEFINE VARIABLE lv-dummy AS INTEGER NO-UNDO.
 
PROCEDURE SystemParametersInfo{&A} EXTERNAL "USER32.DLL":U :
  DEFINE INPUT  PARAMETER uAction  AS LONG NO-UNDO.
  DEFINE INPUT  PARAMETER uParam   AS LONG NO-UNDO.
  DEFINE INPUT  PARAMETER lpvParam AS LONG NO-UNDO.
  DEFINE INPUT  PARAMETER fuWinIni AS LONG NO-UNDO.
  DEFINE OUTPUT PARAMETER retVal   AS LONG NO-UNDO.
END.
 
  /* --- Disable */
 
  RUN SystemParametersInfo{&A} (INPUT  {&SPI_SCREENSAVERRUNNING},
                                       1, /* True */
                                       lv-dummy,
                                       0,
                                OUTPUT retVal
                               )
                               NO-ERROR.
 
  /* --- Enable */
 
  RUN SystemParametersInfo{&A} (INPUT  {&SPI_SCREENSAVERRUNNING},
                                       0, /* False */
                                       lv-dummy,
                                       0,
                                OUTPUT retVal
                               )
                               NO-ERROR.