Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Ciao a tutti.
Avrei la necessità di creare piccoli programmi in shell che richiedono però il rilevamento di più tasti premuti o rilasciati, oltre ai tasti di shift (si chiamano così?) come Ctrl, Shift, Alt, ecc.
Per farlo, un tempo sotto il pascal usavo keypressed oppure degli eventi ad hoc per individuare anche i tasti di shift. Oggi in C e sotto linux non riesco a farlo, se non scomodando le SDL (con SDL_GetKeyState()). Su internet ho trovato solo un esempio degno di nota ma non fa esattamente al caso mio
Che voi sappiate esiste un modo per fare questo senza scomodare le SDL?
No scusa, non mi sono spiegato correttamente: quando dicevo "programma in shell" intendevo (anzi intendo) un programma C senza interfaccia grafica ma che venga eseguito in shell. In pseudo-codice quello che intendo è questo:
while(1) {
key = keypressed(); // chiamata NON interruttiva
if(key[x]==Ctrl)
fai_qualcosa(); //funzione condizionata alla pressione di un tasto specifico
fai_sempre_qualcosa(); // funzione eseguita sempre nel loop infinito
}
Grazie
EDIT: mi correggo, con le SDL devo comunque inizializzare una finestra nuova per la grafica. Senza questo non posso usare le SDL in un programma a linea di comando... quindi anche volendo non le potrei usarle