Try this demo:

Code:
// author: u.seifffert / gameus!de
// date:   06.2009
// 3DGS, lite-c 7.7x
// open source
///////////////////////////////
#include <acknex.h>
#include <windows.h>
#include <default.c>
///////////////////////////////

// shows the keystate of the numberkeys and the numpad keys (if numlock is activated)
// VK_NUMPAD0, VK_NUMPAD1, ... you find declared in windows.h


var gv_keystate[10];

PANEL* pan_info = {
	digits = 20,20,"Press the number keys or the keys from the numpad (while numlock is active)", *, 0, 0;
	digits = 20,40,"key 0 %3.0f", *, 1, gv_keystate[0];	
	digits = 20,50,"key 1 %3.0f", *, 1, gv_keystate[1];
	digits = 20,60,"key 2 %3.0f", *, 1, gv_keystate[2];
	digits = 20,70,"key 3 %3.0f", *, 1, gv_keystate[3];
	digits = 20,80,"key 4 %3.0f", *, 1, gv_keystate[4];
	digits = 20,90,"key 5 %3.0f", *, 1, gv_keystate[5];
	digits = 20,100,"key 6 %3.0f", *, 1, gv_keystate[6];
	digits = 20,110,"key 7 %3.0f", *, 1, gv_keystate[7];
	digits = 20,120,"key 8 %3.0f", *, 1, gv_keystate[8];
	digits = 20,130,"key 9 %3.0f", *, 1, gv_keystate[9];
	flags=VISIBLE;
}

void main(){
	while(1){
		gv_keystate[0]=(abs(GetKeyState(VK_NUMPAD0))>1 || key_0); 
		gv_keystate[1]=(abs(GetKeyState(VK_NUMPAD1))>1 || key_1); 
		gv_keystate[2]=(abs(GetKeyState(VK_NUMPAD2))>1 || key_2); 
		gv_keystate[3]=(abs(GetKeyState(VK_NUMPAD3))>1 || key_3); 
		gv_keystate[4]=(abs(GetKeyState(VK_NUMPAD4))>1 || key_4); 
		gv_keystate[5]=(abs(GetKeyState(VK_NUMPAD5))>1 || key_5); 
		gv_keystate[6]=(abs(GetKeyState(VK_NUMPAD6))>1 || key_6); 
		gv_keystate[7]=(abs(GetKeyState(VK_NUMPAD7))>1 || key_7); 
		gv_keystate[8]=(abs(GetKeyState(VK_NUMPAD8))>1 || key_8); 
		gv_keystate[9]=(abs(GetKeyState(VK_NUMPAD9))>1 || key_9); 
		wait(1);
	}
	
}