Keksin vasta että INKEY$ osaa myös näppäinyhdistelmiä, ja kirjotin tällaisen simppelin ohjelman. Ei sinänsä mitään uutta, paitsi ehkä se idea että esim Ctrl + S toimii QBssä
'Tämä ohjelma yksinkertaisesti printtaa painetun INKEY$:n ascii-koodin
'Omaan ohjelmaan voi laittaa vaikka
'SELECT CASE INKEY$
' CASE CHR$(24): Leikkaa
' CASE CHR$(3): Kopioi
' CASE CHR$(22): Liitä
' CASE CHR$(19): Tallenna
' CASE CHR$(15): Lataa
' jne...
'END SELECT
'ja noi ascii -koodit saa tällä ohjelmanpätkällä selville
CLS
LOCATE 25, 3: PRINT "Ihmemies McEronen Software Nappikuuntelu 2004"
LOCATE 2
PRINT " Aika jännää..."
PRINT ""
PRINT " QBasicissa saa myös näppäinyhdistelmiä INKEY$ -funktiolla"
PRINT " Vasen ja oikea Ctrl tai Alt eivät tee eroa, eikä Shiftillä"
PRINT " voi leikkiä kuin kirjainten ja numeroiden kanssa, mutta"
PRINT " silti..."
PRINT ""
PRINT " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
PRINT ""
PRINT " Paina nappeja, niin kerron mikä sen koodi on..."
'Kuunnellaan nappi
DO: Btn$ = INKEY$: LOOP UNTIL LEN(Btn$)
'Pyyhitään napinpainelukehotus pois
LOCATE 11, 4: PRINT SPACE$(47)
'Printataan painettu nappi
COLOR 15: LOCATE 11, 4
SELECT CASE LEN(Btn$)
CASE 1:
PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ")"
CASE 2:
PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ") + CHR$(" + LTRIM$(STR$(ASC(RIGHT$(Btn$, 1)))) + ")"
END SELECT
COLOR 7: PRINT " " + CHR$(34) + Btn$ + CHR$(34);
CLOSE : END: STOP: SYSTEM '� pelataan varman päälle :)'Tämä on kanssa käyttökelpoinen lyhyt versio, jonka voi
'vaikka väliaikaisesti liittää oman ohjelman alkuun:
'CLS : PRINT "Paina nappia": DO: Btn$ = INKEY$: LOOP UNTIL LEN(Btn$): CLS : PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ") + CHR$(" + LTRIM$(STR$(ASC(RIGHT$(Btn$, 1)))) + ")": ENDJoo, ihan hyvinhän tuo havainnollistaa. Ja kerrompa tässä vielä, että INKEY$ voi palauttaa myös useamman merkin. Sillä voi lukea nuolinäppäimiäkin, joita painettaessa INKEY$ palauttaa CHR$(0):lla alkavat kirjaimet M, K, H ja P.
Hyödykäs hommeli :P
se tossa ei ole loogista että esim ctrl + kirjaimen pituus on vain yksi merkki, kun taas deleten painaminen onkin sitten kaksimerkkinen INKEY$ (CHR$(0) + "S"). :p kurjaa
Aihe on jo aika vanha, joten et voi enää vastata siihen.