Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/10/2009, 11:50
ainerplood
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Encender/Apagar leds del teclado con o c++

Hola, gracia por su ayuda.

Bueno buscando un poco mas de informacion en internet encontre un header que se llama keyboard.h y al parecer tiene la funcion para trabajar los leds pero no se como implementarla o hacerla trabajar.

No puedo pegar los link para que vean la libreria pero le ponen en google keyboard.c y es el primer link (koders.com)

Y sobre el codigo que al parecer funciona es este:

/* Gh0st by WarGame. A proggy that flashes the leds of the keyboard - */

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <linux/kd.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <signal.h>

int fd;

void die(int signum)
{
printf("D3ad\n");
ioctl(fd, KDSETLED, 0x0);
close(fd);
exit(1);
}


int main(int argc,char *argv[])
{
int act = 0xff,interval;

if(argv[1] == NULL)
{
printf("Gh0st by WarGame\n");
printf("Usage: %s <flashing interval in seconds>\n",argv[0]);
exit(-1);
}

interval = atoi(argv[1]);

if ((fd = open("/dev/console", O_NOCTTY)) == -1)
{
perror("open");
exit(-1);
}

signal(SIGINT,die);
signal(SIGTERM,die);
signal(SIGQUIT,die);
signal(SIGTSTP,die);

printf("Gh0st\n");

while(1)
{
if(act == 0xff)
act = 0x07;
else
act = 0xff;

ioctl(fd,KDSETLED,act);
sleep(interval);
}
}


Este funciona bajo Linux (yo trabajo en ubuntu) lo que hace al parecer es hacer que el led correspondiente a Bloq Despl parpadee conforme trabaja el procesador o la red (Una de esas dos cosas) pero no estoy seguro y no entiendo como trabaja. Pero necesito prender/apagar los leds bajo windows XP y creo es muy diferente, ya que leyendo por internet hay que hacerlo con la API de windows, escribiendo y leyendo en la direccion de memoria donde se encuentra el teclado o algo asi.

Muchas gracias de nuevo por su interes a cesar15 y Anubis_Slash espero y me puedan ayudar soy muy novato en esto de C/C++, pero aprendo rapido.