Détection USB

Bonjour,

Comment programmer Qbasic pour reconnaître et différencier 2 claviers raccordés par 2 prises USB?

Merci

4 réponses

  1. Contributeur
    Bonjour, QBasic date de 2000: c'est totalement dépassé comme langage.
    Le QBasic peur gérer des ports parallèles mais pas USB; à la rigueur tu peux utiliser une imprimante USB en la partageant sur le réseau et en l'utilisant depuis QBasic. Mais ne compte pas pouvoir faire joujou avec l'USB à moins que tu n'utilises qb64, et si c'est le cas regarde ici et utilise la doc de WinUSB.
    from human import idiocy
    del idiocy
    1. Bonjour gravgun

      j'ai le qbasic 4.0 et qbasic 4.5 et qbasic 7.1 sur mon pc
      avec un clavier en usb (azerty) j'utilise sans probleme le qbasic
      voici un programmes de test pour les touches en qbasic
      touche ninuscules et majuscules
      --------------------------------------------------------------
      CLS : COLOR 15

      ' Constantes de touches de fonction et de contr"le.
      CONST ECHAP = 27, BAS = 80, HAUT = 72, GAUCHE = 75, DROITE = 77
      CONST ORIGINE = 71, FIN = 79, PGSUIV = 81, PGPREC = 73

      DO
      PRINT "test clavier pour sur touche"
      PRINT "pour sotire du programme poure sur(ESC)"
      ' Obtenir une touche de fonction ou touche ASCII.
      DO
      choix$ = INKEY$
      LOOP WHILE choix$ = ""
      PRINT ASC(choix$)

      IF LEN(choix$) = 1 THEN
      ' Traitement des touches ASCII
      SELECT CASE ASC(choix$)
      CASE ECHAP
      PRINT "Touche d''chappement"
      END
      CASE IS < 32, 127
      PRINT "Code de contr"le"
      CASE 48 TO 57
      PRINT "Chiffre: "; choix$
      CASE 65 TO 90
      PRINT "Lettre majuscule: "; choix$
      CASE 97 TO 122
      PRINT "Lettre minuscule: "; choix$
      CASE 123 TO 255
      PRINT "Code asc "; choix$
      CASE ELSE
      PRINT "Ponctuation: "; choix$
      END SELECT

      ELSE
      ' Conversion du code 'tendu ... deux octets en code
      ' ASCII ... un octet et traitement
      choix$ = RIGHT$(choix$, 1)
      SELECT CASE choix$
      CASE CHR$(BAS)
      PRINT "Touche BAS"
      CASE CHR$(HAUT)
      PRINT "Touche HAUT"
      CASE CHR$(PGSUIV)
      PRINT "Touche PG.SUIV"
      CASE CHR$(PGPREC)
      PRINT "Touche PG.PREC"
      CASE CHR$(ORIGINE)
      PRINT "Touche ORIGINE"
      CASE CHR$(FIN)
      PRINT "Touche FIN"
      CASE CHR$(DROITE)
      PRINT "Touche DROITE"
      CASE CHR$(GAUCHE)
      PRINT "Touche GAUCHE"
      CASE ELSE
      BEEP
      END SELECT
      END IF
      PRINT
      LOOP
      -------------------------------------------------------------------------
      1. Contributeur
        INKEY$
        c'est une entrée de caractères générique, ça peut être généré par un clavier USB, par un clavier Bluetooth, par un driver émulant un clavier, etc: QBasic ne saura jamais que ton clavier est un USB. À part la solution que je t'ai donné, je ne crois pas que ça soit possible de distinguer 2 périphériques.
    2. Bonjour gravgun;
      Bonjour qbasic45;

      Merci à tous les deux de vous êtes intéressés à mon problème.
      Il s'agit d' enregistrer et de différencier les notes d'appréciation de juges (2 ou +), ayant chacun un clavier relié à l'ordinateur par prise USB.
      Hélas, mon Qbasic 6.0 date de 1998 et suis très limité en programmation.

      Je vais essayer de contourner le problème en obligeant chaque juge de se différencier en cliquant sur une touche avant de transmettre sa notation.