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 sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 15: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 22: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 16:03

showkey per identificarli premendoli e rilasciandoli
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 21: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 22: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 22:21
Località: MN
Slackware: 10.2 | 13
Desktop: Fluxbox | KDE


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti