PDA

Visualizza la versione completa : [C] Usare i Tasti funzione


jhonnyx
06-05-2003, 05:39
Ciao a tutti e un ringraziamento caloroso a chi tiene sempre viva questa comunità!

Mi servirebbe sapere come posso riconoscere la pressione dei tasti funzione (F1 F2 F3...F12) ma anche ai vari CTRL ALT ecc tramite C, senza però andare ad intaccare altre librerie tipo stdio.h.

Grazie

Navimel
06-05-2003, 11:15
Prova con _getch().

Ciao

jhonnyx
06-05-2003, 12:26
Originariamente inviato da Navimel
Prova con _getch().

Ciao

Il problema è che mi ritorna anche _getch() due codici al posto di uno solo per ogni carattere e in questo modo non riesco ad identificarlo

$$$
06-05-2003, 15:13
dovrebbe essere l' interrupt 0x16 - se nn vuoi NESSUNA libreria.

jhonnyx
06-05-2003, 16:17
Originariamente inviato da $$$
dovrebbe essere l' interrupt 0x16 - se nn vuoi NESSUNA libreria.

Altrimenti quale libreria posso usare? ho già sviluppato un programma che usa printf cprintf (DOS) per l'output a video, mi serve solo un modo per identificare i tasti funzione senza dar "fastidio" alle comuni routine in conio.h o stdio.h

$$$
06-05-2003, 23:42
asp. ma tu vuoi restare in attesa che l'user prema un tasto (Fxx -CTRL-ALT-ecc) o vuoi controllare se era premuto in 1 determinato istante?

jhonnyx
07-05-2003, 01:39
Originariamente inviato da $$$
asp. ma tu vuoi restare in attesa che l'user prema un tasto (Fxx -CTRL-ALT-ecc) o vuoi controllare se era premuto in 1 determinato istante?

Si, ho già creato un programma che fa tutto ciò ke deve fare, aspettare la scelta dell'utente ecc ecc...

solo che con le librerie standard del c non riesco a identificare i tasti funzione con un codice univoco es:

carattere = getch()
switch(carattere)
{
case 13: bla bla bla;
case 15: bla bla bla;
}

non so come identificarli e non sono sicuro che le librerie che sto usando (conio e stdio) consentano di farlo...

Navimel
07-05-2003, 15:09
Fai :

int tasto;

tasto=_getch() ;

if (tasto==0){

tasto=_getch() +1000;

}
printf("%i",tasto);

tasto avrà un codice univoco sempre :adhone:

jhonnyx
07-05-2003, 21:33
Originariamente inviato da Navimel
Fai :

int tasto;

tasto=_getch() ;

if (tasto==0){

tasto=_getch() +1000;

}
printf("%i",tasto);

tasto avrà un codice univoco sempre :adhone:

Grazie mille! Grazie a te ho risolto il mio problema :mavieni:
Posso chiederti la spiegazione "teorica" dietro questa soluzione?
Grazie.

Loading