Associare ad un tasto, la pressione di tanti..

di il
9 risposte

Associare ad un tasto, la pressione di tanti..

Salve, programmo da poco in c++, ma conosco il linguaggio java da tanto.
Volevo chiedervi informazioni (magari un codice esempio) su come fare (ammesso che sia possibile)
ad associare la pressioni di piu tasti ad uno solo, mi spiego con un esempio:

Se premo il tasto "t" sulla tastiera, ottengo la lettera "t".
Vorrei fare un programma che, mentre è in esecuzione,premendo ad esempio la lettera "t", ottengo una combinazione di tasti ad esempio: "tana".

Non solo con un file di testo, ma, se sono dentro un applicazione, premendo t, deve equivalere alla pressione dei tasti da me desiderati.. Spero di essermi spiegato!

Se potete postare un po di codice, o sapete dirmi che classe importare per lavorarci su..
Insomma qualsiasi aiuto è ben accetto! grazie!

9 Risposte

  • Re: Associare ad un tasto, la pressione di tanti..

    Se la cosa deve valere per tutte le applicazioni del sistema allora devi scrivere un

    "hook di tastiera"

    (cerca documentazione su internet)

    P.S. Ovviamente per Windows ...
  • Re: Associare ad un tasto, la pressione di tanti..

    Grazie per la risposta oregon
    Ho cercato su internet (un occhiata veloce) e ho realizzato che il mio livello di conoscenze di c++ non è ancora sufficiente per gestire questi tipi di problemi.. Quindi, sapresti dirmi se la gestione dell hook di tastiera (o di mouse) è gestibile anche con java? Sempre con lo scopo di fare quello che ho scritto prima!
  • Re: Associare ad un tasto, la pressione di tanti..

    A livello applicativo
    basta che usi una funzione api chiamata ReadConsoleInput.
    documentazione

    la quale ti permette di intercettare un tasto che hai premuto comando o carattere.
    poi ti testi il carattere premuto e fai restituire la stringa che ti interessa.
    se invece ti serve per il sistema cosi come hanno detto gli altri non restano che le "hook di tastiera"
    ma sinceramente penso che non c'è utilità nel farla per il sistema e più utile a livello applicativo.
    spero di averti aiutato
  • Re: Associare ad un tasto, la pressione di tanti..

    smalldragon ha scritto:


    basta che usi una funzione api chiamata ReadConsoleInput.
    A che pro usare una API per l'input quando il C++ prevede la classe cin ma anche tutte le normali funzioni C di libreria come scanf, fgets .... ?
  • Re: Associare ad un tasto, la pressione di tanti..

    Ringrazio anche smalldragon, ma mi sa che ho corso troppo, devo ancora fare progressi in c++..
    Magari chiederò un aiuto quando avrò studiato un altro po
  • Re: Associare ad un tasto, la pressione di tanti..

    X oregon
    sai bene anche tu che se devi gestire un solo carattere per volta la readconsoleinput e la funzione migliore.
  • Re: Associare ad un tasto, la pressione di tanti..

    smalldragon ha scritto:


    X oregon
    sai bene anche tu che se devi gestire un solo carattere per volta la readconsoleinput e la funzione migliore.
    Non è così ... esista la getchar standard del C/C++.

    Ma il problema è un altro ... lui vuole un "filtro system wide" che ottiene solo con l'hook e non con una API o una funzione che lavori solo con l'input del processo corrente. Compreso?
  • Re: Associare ad un tasto, la pressione di tanti..

    Guarda bene i posti precedenti che anche io ho scritto che se lo voleva fare per il sistema alias "filtro system wide" la tecnica era quella degli hook.
    ho solo aggiunto e spiegato che se invece lo voleva fare a livello applicativo la funzione che avrebbe dovuto usare era la ReadConsoleInput che da prove effettuate risulta più affidabile e più completa della getchar.
    ma se ti trovi meglio ad usare la getchar ok! nessun problema!
    poi guarda che anche la ReadConsoleInput fa parte dello standard del C/C++.
    cosi come tutte le system api sono le application api che non fanno parte dello standard anche se lo utilizzano all'interno del inplementazione.
  • Re: Associare ad un tasto, la pressione di tanti..

    smalldragon ha scritto:


    guarda bene i posti
    I post ... i posti sono altre cose ...
    se invece lo voleva fare a livello applicativo la funzione che avrebbe dovuto usare era la ReadConsoleInput
    E non è vero ! In quel caso esistono le funzioni del C/C++ che non ha senso non utilizzare.
    più affidabile
    Più affidabile di una funzione usata praticamente da quando esiste il C ? Ma che dici ?
    poi guarda che anche la ReadConsoleInput fa parte dello standard del C/C++.
    Scusa, ma questa è una stupidaggine. Tu non conosci le librerie standard C/C++.
    La ReadConsoleInput è una API di Windows e basta. Prova ad usarla con Unix/Linux ...
    cosi come tutte le system api sono le application api che non fanno parte dello standard anche se lo utilizzano all'interno del inplementazione.
    A Vincenzo, ma che caspita dici ??? )))
Devi accedere o registrarti per scrivere nel forum
9 risposte