View Full Version : Códigos do teclado


brunocosta505
02-08-2008, 02:49
boas...

#define NIL -1
#define ESC 27
#define CTRL 29
#define SHFT 42
#define ALT 56
#define CAPS 58
#define F1 59
#define F2 60
#define F3 61
#define F4 62
#define F5 63
#define F6 64
#define F7 65
#define F8 66
#define F9 67
#define F10 68
#define NUM 69
#define SCRL 70
#define HOME 71
#define UP 72
#define PGUP 73
#define LEFT 75
#define FIVE 76
#define RGHT 77
#define END 79
#define DOWN 80
#define PGDN 81
#define INS 82
#define DEL 83
#define F11 87
#define F12 88
#define WIN 91
#define RTCK 93
#define POWR 94
#define SLEP 95
#define WAKE 99

estes exemplos de defines de c++ que escrevi são alguns exemplos de códigos das teclas do nosso actual teclado.. alguem sabe qual deste é o enter? ( '\n' )

edit: e ja agora estes códigos que se mete a seguir a nome, é de que tipo? e faz parte da tabela ascii? tive a ver e acho que não é numero decimal, hexadecimal nem octal..

obrigado pela atenção :)

shello
02-08-2008, 03:24
Creio que o Enter (Return/Carriage Return) é identifica-se como 13 (seguindo a tabela ascii).

Baderous
02-08-2008, 14:30
http://en.wikipedia.org/wiki/Newline

brunocosta505
02-08-2008, 17:54
não.. o 13 n é o enter :S
mas este código é de que tipo isso é que ainda não percebi...
por exemplo to a usar uns que sei que funcionam, por exemplo:


# define FIRST -32 //isto não sei o que é
# define UP 72 //up arrow
# define DOWN 80 //down arrow
# define LEFT 75 //left arrow
# define RIGHT 77 //right arrow


e aqui um exemplo de código:


tecla=getch ();
system ("cls");
if (tecla==FIRST)
{
tecla=getch ();
switch (tecla)
{
case UP:
if (poslin!=2)
{
tab [poslin-4] [poscol]='X';

tab [poslin] [poscol]=' ';

poslin=poslin-4;
}
break;

case DOWN:
if (poslin!=10)
{
tab [poslin+4] [poscol]='X';

tab [poslin] [poscol]=' ';

poslin=poslin+4;
}
break;

MPalhas
02-08-2008, 18:26
o ENTER é o 13 sim. pode é não funcionar de forma tão linear como os outros (mas disso já não me lembro bem)

o -32 deve-se ao facto de as teclas cima/baixo/esquerda/direita não existirem na tabela ASCII, logo não têm um código associado.
quando queres usar essas teclas, tens que ler o input do teclado pelo getch, e se o valor retornado for -32, então uma segunda chamada ao getch vai retornar outro número (72, 80, 75, 77, ou outros)


mas este código é de que tipo isso é que ainda não percebi...são números... que mais queres? tanto podem ser decimais, hexadecimais, octais, binários, que não deixam de ser números
mais info: http://pt.wikipedia.org/wiki/ASCII

Mr. Brightside
02-08-2008, 19:39
Isso parecem ser scancodes. Tens aqui (http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html) alguma informação sobre o assunto.