Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [C] Rilevare i Tasti Funzione [Fx]

    Io ho fatto questo funzioni per rilevare i tasti funzione
    es. F1, F2 ecc.
    Secondo voi sono giuste ???
    e sono partabile da Win a Linux e da Tastiera a Tastiera ???
    codice:
    short int fkey (void) {
       register unsigned char key;
       
       key = getch();                            /* Chiave [F] */
       if (key == 0) {
          key = getch();                         /* Chiave [x] */
          switch (key) {
             case 59: return (1);                /* [F1] */
             case 60: return (2);                /* [F2] */
             case 61: return (3);                /* [F3] */
             case 62: return (4);                /* [F4] */
             case 63: return (5);                /* [F5] */
             case 64: return (6);                /* [F6] */
             case 65: return (7);                /* [F7] */
             case 66: return (8);                /* [F8] */
             case 67: return (9);                /* [F9] */
             case 68: return (10);               /* [F10] */
          }
       } else if (key == 224) {
          key = getch();                         /* Chiave [x] */
          switch (key) {
             case 133: return (11);              /* [F11] */
             case 134: return (12);              /* [F12] */
          }
       }
          
       return (-key);
    };
    
    
    unsigned short int chk_fkey (register short int key) {
       if (key <= 0) return (0);
       
       return (key);
    };
    
    
    int main() {
       short int key;
       
       do {
          key = fkey();
    
          if (chk_fkey(key)) {                   /* E' un Tasto F */
             printf ("F%d \n", key);
          } else {                               /* Non e' un Tasto F */
             printf ("%d \n", -key);
          }
       } while (-key != 27);
       
       return 0;
    };
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  2. #2
    up
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  3. #3
    io mi baso se questa tab.............i codici dei tasti FX dove lo hai preso?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  4. #4
    Utente bannato
    Registrato dal
    Nov 2003
    Messaggi
    558
    Infatti. I codici del tuo sorgente nn corrispondo ai tasti funzione.

    In effetti nn credo neanche che i tasti Fx abbiano un corrispondente codice ASCII. Gli ASCII infati codificano un 'carattere', e i tasti funzione nn sono caratteri.

    Perciò per rilevarli devi usare un'altro sistema. Nn so quale ma come fai tu nn credo sia la strada giusta


  5. #5
    dovrebbe appoggiarsi all Os.
    Qui na bella classettina C++ che astra e rende indipendenti dall'Os la vdedo bene
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  6. #6
    Originariamente inviato da Lardoman

    In effetti nn credo neanche che i tasti Fx abbiano un corrispondente codice ASCII. Gli ASCII infati codificano un 'carattere', e i tasti funzione nn sono caratteri.
    che lancino interruzioni particolari?
    mi sono incuriosito..

  7. #7

  8. #8
    I tasti Fx corrispondono a semplici codici ascii.

    Quando premo un tasto speciale, (funzione, frecce, combinazioni), non faccio altro che dare 0 più un carattere ascii.

    Quindi verificando che il primo carattere sia 0, allora vuol dire che ho premuto un tasto speciale, il quale mi verrà dato dal secondo numero (quello dopo lo zero).

    Ciao!

  9. #9
    se non ricordo male vanno da 112 a 127

    da f1 a f16!

  10. #10
    Originariamente inviato da Michele Facchin
    I tasti Fx corrispondono a semplici codici ascii.

    Quando premo un tasto speciale, (funzione, frecce, combinazioni), non faccio altro che dare 0 più un carattere ascii.

    Quindi verificando che il primo carattere sia 0, allora vuol dire che ho premuto un tasto speciale, il quale mi verrà dato dal secondo numero (quello dopo lo zero).

    Ciao!
    esiste una tabella?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.