Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [c] problema rilevare pressione tasti..

    volevo chiedere come poter rilevare la pressione di un tasto per esempio f in un qualsiasi momento all'interno di un programma che va?

    esempio
    codice:
    codice:
    int main
    {
    int a,b,c,v;
    char r,tyy;
    //altre variabili
    
    for()
    {
    //fa quello che deve fare
    }
    
    while (1==1)
    {
    //simulo pressione tasti
    keybd_event('c', 0, 0, 0 ); 
    keybd_event('c', 0, KEYEVENTF_KEYUP, 0 ); 
    keybd_event('i', 0, 0, 0 ); 
    keybd_event('i', 0, KEYEVENTF_KEYUP, 0 );
    keybd_event('a', 0, 0, 0 ); 
    keybd_event('a', 0, KEYEVENTF_KEYUP, 0 );
    keybd_event('o', 0, 0, 0 ); 
    keybd_event('o', 0, KEYEVENTF_KEYUP, 0 );
    
    /*-----altri cicli vari-----*/
    Sleep (2000); //aspetto 2 secondi
    }
    
    }

    eseguendo questo codice a un certo punto voglio smettere e premo f e lui termina... so che per rilevare la pressione di un tasto devo usare GetAsyncKeyState(valore ascii tasto)
    pero dove lo metto, all'interno di ogni ciclo??? puo essere che entri in conflitto con la keybd_event??

  2. #2

    Re: [c] problema rilevare pressione tasti..

    Originariamente inviato da indovinello
    eseguendo questo codice a un certo punto voglio smettere e premo f e lui termina... so che per rilevare la pressione di un tasto devo usare GetAsyncKeyState(valore ascii tasto)
    pero dove lo metto, all'interno di ogni ciclo???
    Sì.
    puo essere che entri in conflitto con la keybd_event??
    No, o meglio, le pressioni di tasto sintetizzate dalla keybd_event probabilmente verranno "visti" dalla GetAsyncKeyState.
    Per inciso, né la keyb_event ne la GetAsyncKeyState ricevono come parametro il "valore ascii del tasto", ma richiedono un virtual key code (vedi qui e qui), e la keyb_event è deprecata in favore della SendInput.

    (Tra parentesi, il codice va formattato nei tag [code] ... [/code], qui ho sistemato io, in futuro ricordatene.)
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.