CTRL-C

 BBS: Inland Empire Archive
Date: 01-01-93 (20:16)             Number: 234
From: AARON LAPIKAS                Refer#: NONE
  To: JASON BAUMAN                  Recvd: NO  
Subj: CTRL-C                         Conf: (2) Quik_Bas
Hi again!

> How can i have QuickBasic NOT abort a program whenever CTRL-C or CTRL-
> BREAK is hit. I've tried making Password programs to put on friends
> systems, but that always was the problem. Thanx a lot

Well, the only way I know of to trap CTRL-BREAK is to
compile NOT using the error checking option.  To trap CTRL
is easy.  Try the following example:

DO
  IF INKEY$ = CHR$(3) THEN
    PRINT "You pressed CTRL-C."
  END IF
LOOP

<a few seconds later>

Now that I think about it, there is another way to trap the
CTRL-BREAK key combination, here is how:

DEF SEG = &H40                         'Swich to BIOS segment
  POKE &H17, PEEK(&H17) AND (239)      'Shut off the Scroll-Lock key
  POKE &H17, PEEK(&H17) AND (223)      'Shut off the Num-Lock key
  POKE &H17, PEEK(&H17) AND (191)      'Shut off the Cap-Lock key
DEF SEG                                'Switch back to the default segment

KEY 15, CHR$(&H0) + CHR$(&H1D)         'Define a key that traps CTRL
KEY(15) ON                             'Turn the key on.

ON KEY(15) GOSUB Trap

DO                                     'Idle loop used JUST for example
LOOP


Trap:

RETURN


This may be confusing, but I will explain now.  The POKEs, PEEKs, and DEF
SEGs at the beginning just turn off the Cap-Lock, Num-Lock,
and Scroll-Lock keys if they were on.  This must be done
because trapping the CTRL key becomes easier. Then the
program goes into the idle loop and waits.  If the user
presses CTRL, then the program branches to the subroutine
TRAP.

By doing this, it is impossible to press the key
combination of CTRL-BREAK, and CTRL-anything also.  If you
try this and realize that you can't press CTRL-BREAK to
exit to the QB environment, rather than rebooting, put the
Cap-Lock and then press CTRL-BREAK - this will get you back
to the environment.  If you have any questions or problems,
just ask.

Aaron




 Now that I think about it, there may be another way to
do this.

--- FMail 0.90
 * Origin: BCData Programming Inc - Sharon, PA (1:2601/506.1)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET