LINUX.ORG.RU

Управление индикацией клавиатуры


0

3

Нужно получить доступ к индикаторам клавы (вкл\выкл делать) Вот пример на перле, работает, без запуска от рута

#!/usr/bin/perl
open(FH, "/dev/console") or die "open";
ioctl(FH, 0x4b32, 1); # scroll lock on
ioctl(FH, 0x4b32, 2); # num lock on
ioctl(FH, 0x4b32, 4); # caps lock on
ioctl(FH, 0x4b32, 0); # all off
close(FH);
Вот пример на Си, нихрена не работает даже от рута
#include <fcntl.h>
#include <unistd.h>
#include <linux/kd.h>
#include <sys/ioctl.h>
main() {
    int fd;
    open("/dev/console", fd);
    ioctl(fd, KDSETLED, 7);
}
wtf? Почему не работает

> open(«/dev/console», fd);

fd = open("...", O_RDONLY);

anonymous
()

хм...пусть это будет внезапный порыв ветра, все заработало. получается как, если послать сигнал к примеру вкл все, то все включаются, потом если мы их ручками отключаем (клацаем на кнопочки капс,скролл,нум лок), и снова запускаем прогу что бы включить все индикаторы, а видим что ничего не включается, нужно выключить их а потом уже снова включать. Видимо не передается состояние индикаторов, а только можно выставить. хм...

free_kode
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.