О обработчике клавиатуры в Linux с использованием программирования c - PullRequest
1 голос
/ 21 апреля 2011

Я пытаюсь мигать с помощью программы на c, управляющей обработчиком клавиатуры* + del push ... пожалуйста, помогите мне ..

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Я вроде согласен с КП. Это смешно ...

Но если ты серьезно ...

Первый:

Существует setleds программа, которая может помочь вам начать работу. Это было вокруг целую вечность ... Попробуйте man setleds .

Кроме того, xset можно использовать (под X-windows) для изменения светодиодов ... (Возможно, вам придется увидеть, какие светодиоды включены для изменения в X-config файл.)

Второе:

Обнаружение ctrl + alt + del является более серьезной проблемой, поскольку оно специально помечено init . Посмотрите в / etc / inittab или / etc / init / control-alt-delete.conf или где-то в этом роде, и вы увидите строки вроде:

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -h now

Или:

# control-alt-delete - emergency keypress handling
#
# This task is run whenever the Control-Alt-Delete key combination is
# pressed.  Usually used to shut down the machine.

start on control-alt-delete

exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

Так что вам придется отключить это ... Или просто запустить программу мигания клавиатуры, а не /sbin/shutdown.

Кроме того, следите за «Control-Alt-Backspace» - Многие настройки конфигурации X11 позволяют этой комбинации отключать X-сервер. (Опция "DontZap" .)

Третье:

Теперь вам нужно найти способ получить нажатие клавиши control-alt-delete . Это не невозможно, но это может быть не так просто, как getc () . (Опять же, я могу ошибаться ...)

Конечно, если вы не хотите, чтобы ваша программа имела фокус клавиатуры. Если вы хотите, чтобы это происходило, когда другие программы выполняются на переднем плане с фокусировкой на клавиатуре ... Что ж, тогда вы смотрите на настройку ядра или какого-либо драйвера ядра. (Или inittab запустить программу вместо / sbin / shutdown .)

Как ни крути, это не очень хорошее Hello World упражнение типа.

1 голос
/ 21 апреля 2011

Опция:

  • Найдите правильное место для захвата Alt + Ctrl + Del и зарегистрируйте обработчик.
  • Используйте KDGETLED/KDSETLED ioctl на /dev/console для изменения индикаторов клавиатуры.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...