主题:最近做按键检测的成果
DIM keystate(0 TO 255) AS INTEGER
DIM keycheck(0 TO 9) AS INTEGER
DIM keyname(0 TO 9) AS STRING * 8
CLS
FOR i = 0 TO 9
READ keycheck(i)
NEXT i
DATA &hc8,&hcb,&hcd,&hd0,&h2a,&h36,&h1d,&h9d,&h38,&hb8
LOCATE 7, 1
PRINT "Press [ESC] to quit..."
PRINT "Press key below, to see if it's working"
LOCATE 10, 1
FOR i = 0 TO 9
READ keyname(i)
PRINT keyname(i);
NEXT i
PRINT
DATA "Up ","Left ","Right ","Down ","Lshift ","Rshift ","LCtrl ","RCtrl ","LAlt ","RAlt "
exflag = 0
oldkey = 0
COLOR 12
DO
DO
oldkey = nowkey
nowkey = INP(&H60)
LOOP WHILE nowkey = oldkey
IF nowkey = &HE0 THEN
exflag = 1
ELSE
IF exflag = 0 THEN
IF nowkey < &H80 THEN
keystate(nowkey) = 1
ELSE
keystate(nowkey - &H80) = 0
END IF
ELSE
IF nowkey < &H80 THEN
keystate(nowkey + &H80) = 1
ELSE
keystate(nowkey) = 0
END IF
exflag = 0
END IF
END IF
LOCATE 12, 1
FOR i = 0 TO 9
IF keystate(keycheck(i)) = 1 THEN
PRINT keyname(i);
ELSE
PRINT SPC(8);
END IF
NEXT i
'clear keys store in computer
WHILE INKEY$ <> ""
WEND
LOOP UNTIL nowkey = 1 'esc
COLOR 7
END
DIM keycheck(0 TO 9) AS INTEGER
DIM keyname(0 TO 9) AS STRING * 8
CLS
FOR i = 0 TO 9
READ keycheck(i)
NEXT i
DATA &hc8,&hcb,&hcd,&hd0,&h2a,&h36,&h1d,&h9d,&h38,&hb8
LOCATE 7, 1
PRINT "Press [ESC] to quit..."
PRINT "Press key below, to see if it's working"
LOCATE 10, 1
FOR i = 0 TO 9
READ keyname(i)
PRINT keyname(i);
NEXT i
DATA "Up ","Left ","Right ","Down ","Lshift ","Rshift ","LCtrl ","RCtrl ","LAlt ","RAlt "
exflag = 0
oldkey = 0
COLOR 12
DO
DO
oldkey = nowkey
nowkey = INP(&H60)
LOOP WHILE nowkey = oldkey
IF nowkey = &HE0 THEN
exflag = 1
ELSE
IF exflag = 0 THEN
IF nowkey < &H80 THEN
keystate(nowkey) = 1
ELSE
keystate(nowkey - &H80) = 0
END IF
ELSE
IF nowkey < &H80 THEN
keystate(nowkey + &H80) = 1
ELSE
keystate(nowkey) = 0
END IF
exflag = 0
END IF
END IF
LOCATE 12, 1
FOR i = 0 TO 9
IF keystate(keycheck(i)) = 1 THEN
PRINT keyname(i);
ELSE
PRINT SPC(8);
END IF
NEXT i
'clear keys store in computer
WHILE INKEY$ <> ""
WEND
LOOP UNTIL nowkey = 1 'esc
COLOR 7
END