Toggle Alt+C and Ctrl+Break as program termination keys

     SETCANCEL([<lToggle>]) --> lCurrentSetting


     <lToggle> changes the availability of Alt+C and Ctrl+Break as
     termination keys.  Specifying true (.T.) allows either of these keys to
     terminate an application and false (.F.) disables both keys.  The
     default is true (.T.).


     SETCANCEL() returns the current setting as a logical value.


     SETCANCEL() is a keyboard function that toggles the state of the
     termination keys, Alt+C and Ctrl+Break, and reports the current state of
     SETCANCEL().  Use SETCANCEL() when you want to suppress a user's ability
     to terminate a program without using the specified method.

     Note that if Alt+C or Ctrl+Break is redefined with SET KEY, the SET KEY
     definition takes precedence even if SETCANCEL() returns true (.T.).

     Warning!  When SETCANCEL() has been set to false (.F.), the user
     cannot terminate a runaway program unless you provide an alternative
     escape mechanism.


     .  This example provides an escape route from a wait state with
        SETCANCEL() set off:

        #define K_ALTC   302
        SETCANCEL(.F.)              // Disable termination keys
        SET KEY K_ALTC TO AltC      // Redefine Alt-C
        . <statements>

        FUNCTION AltC
           LOCAL cScreen, nChoice, cLastColor := ;
                 SETCOLOR("W/B, N/G")
           SAVE SCREEN TO cScreen
           @ 6, 20 CLEAR TO 9, 58
           @ 6, 20 TO 9, 58 DOUBLE
           @ 7, 26 SAY "Alt-C: Do you want to quit?"
           @ 8, 35 PROMPT " Yes "
           @ 8, 41 PROMPT " No "
           MENU TO nChoice
           RESTORE SCREEN FROM cScreen
           IF nChoice = 1
           RETURN NIL

 Files   Library is CLIPPER.LIB.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.