Repository 32bit  Forum
Repository 64bit  Wiki

[C] keypressed e tasti di Shift in C

Forum dedicato alla programmazione.

Moderatore: Staff

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.

[C] keypressed e tasti di Shift in C

Messaggioda Calzo » dom mag 10, 2009 14:01

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?

grazie
bye
Avatar utente
Calzo
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: sab ott 06, 2007 21:21
Località: MN
Slackware: 10.2 | 13
Desktop: Fluxbox | KDE

Re: [C] keypressed e tasti di Shift in C

Messaggioda Mario Vanoni » dom mag 10, 2009 15:03

showkey per identificarli premendoli e rilasciandoli
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 20:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: [C] keypressed e tasti di Shift in C

Messaggioda Calzo » dom mag 10, 2009 21:30

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:
Codice: Seleziona tutto
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... :oops: quindi anche volendo non le potrei usarle #-o
Avatar utente
Calzo
Linux 2.0
Linux 2.0
 
Messaggi: 112
Iscritto il: sab ott 06, 2007 21:21
Località: MN
Slackware: 10.2 | 13
Desktop: Fluxbox | KDE


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Yahoo [Bot] e 2 ospiti