Originariamente inviato da ESSE-EFFE
Leggiti la documentazione relativa a GetAsyncKeyState. Quel valore di confronto non mi sembra abbia molto senso, prova con:

if (GetAsyncKeyState(VK_RETURN) & 1)

HTH,
no il problema non è GetAsyncKeyState, l'ho sempre usata così
codice:
Bit più significativo: il tasto è stato premuto tra una chiamata e l'altra alla funzione
|              Bit meno significativo: il tasto è correntemente premuto
|              |
V     BIN      V       HEX    DEC (con segno)   Significato
0000000000000000  =  0x0000  =       0          Il tasto non è stato premuto né è correntemente premuto
1000000000000000  =  0x8000  =  -32768          Il tasto è stato premuto ma ora non lo è più
0000000000000001  =  0x0001  =       1          Il tasto è premuto in questo momento ma non lo è stato
1000000000000001  =  0x8001  =  -32767          Il tasto è stato premuto e lo è tuttora