Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21

мигание num lock

04.04.2011, 19:02. Показов 5520. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет всем!! задача такая: нужно прога, чтобы каждую секунду изменялось состояние num lock))
подскажите пожалуйста!!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2011, 19:02
Ответы с готовыми решениями:

Мигание Num Lock на экране ПК
Здравствуйте! Прошу о помощи. У меня при работе на клавиатуре HIM (отдельное устройство) на экране ноутбука постоянно появляется окно - ...

Acer aspire 5552G-N974G64Mikk Проблема с Caps Lock, Num Lock, Scroll Lock
Вообщем у меня такая же проблемма https://www.cyberforum.ru/notebooks/thread552722.html Небольшая проблема на ноутбуке, когда...

Вывести на экран в символическом виде состояние NUM LOCK, CAPS LOCK и SCROLL LOCK
Помогите решить задачку на турбо си Выводить на экран в символическом виде состояние NUM LOCK, CAPS LOCK и SCROLL LOCK (вкл. / выкл.),...

25
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
04.04.2011, 19:50
man sleep ioctl ioctl_list (читать про KD[GS]KBLED)
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
05.04.2011, 10:52  [ТС]
сделал вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
 
 
int main(void)
{
    int fd = open("/dev/tty0",O_NOCTTY);
    if (fd == -1)
    {
        perror("open");
        return -1;
    }
 
    int state = 0;
    // Get the keyboard state into the state variable.
    if (-1 == ioctl(fd, KDGKBLED, &state))
    {
        perror("ioctl");
        close(fd);
        return -1;
    }
 
    // Toggle the num lock state
    state ^= K_NUMLOCK;
 
    // Set the new state
    if (-1 == ioctl(fd, KDSKBLED, state))
    {
        perror("ioctl set");
        close(fd);
        return -1;
    }
 
    close(fd);
    return 0;
}
работает, мигает, пока еще не зациклил но это ладно)) главное что так я подключаюсь к tty0, а это как я понял не обязательно клавиатура)) какое название имеет клавиатура в линуксе(debian)???
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
05.04.2011, 11:00
Думаю /dev/console подойдет.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
05.04.2011, 11:11  [ТС]
да это подходит, спасибо))
но это получается косвенный метод)) а есть ли еще варианты реализации??
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
05.04.2011, 11:12
В смысле поменять ioctl на что-то другое?
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
05.04.2011, 11:19  [ТС]
ну как бы да))
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
05.04.2011, 11:26
Боюсь, что нет. Если только из ядреных драйверов куски кода повыдергивать.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
05.04.2011, 11:40  [ТС]
ок)) спасибо)) вот конечный код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
 
 
int main(void)
{
    int fd = open("/dev/console",O_NOCTTY);
    if (fd == -1)
    {
        perror("open");
        return -1;
    }
    while(1)
    {
        int state = 0;
        // Get the keyboard state into the state variable.
        if (-1 == ioctl(fd, KDGKBLED, &state))
        {
          perror("ioctl");
          close(fd);
          return -1;
        }
 
        // Toggle the num lock state
        state ^= K_NUMLOCK;
 
        // Set the new state
        if (-1 == ioctl(fd, KDSKBLED, state))
        {
          perror("ioctl set");
          close(fd);
          return -1;
        }
        sleep(1);
    }
        close(fd);
        return 0;
}
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
05.04.2011, 13:35
Если это не для себя, а какое-то задание, то лучше поменять return -1; на return 1;, а еще лучше на макросы EXIT_SUCCESS/EXIT_FAILURE
1
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
06.04.2011, 13:16  [ТС]
а в чем разница??
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
06.04.2011, 13:38
Лучший ответ Сообщение было отмечено как решение

Решение

main() всегда int, return из main это полный эквивалент exit(int), а для exit status используется только 1 байт т.е. return -1 вернет код 255, что уже вовсе не -1.
3
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
06.04.2011, 13:52  [ТС]
ага)) теперь я понял)) спасибо))
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
08.04.2011, 19:55  [ТС]
а возможно ли это делать просто записью порт клавиатуры что то типо ED02, а потом ED00??
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
08.04.2011, 21:07
Отчего же нельзя, думаю можно, только вот ioctl() кроме pc знает и другие клавиатуры) но вам наверное не актуально.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
10.04.2011, 11:19  [ТС]
вот я так сделал, намлок не мигает)) в чем беда??

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
 
 
int main(void)
{
    int fd = open("/dev/console",O_NOCTTY);
    if (fd == -1)
    {
        perror("open");
        return -1;
    }
    while(1)
    {
        write (fd,0xED02,2);
        sleep(1);
        write (fd,0xED00,2);
        sleep(1);
    }
        close(fd);
        return 0;
}
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
10.04.2011, 11:52
Жуть какая) man ioperm outw А лучше не страдаете фигней, ioctl() таки лучший выбор.)))
0
10.04.2011, 15:19

Не по теме:

Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
а еще лучше на макросы EXIT_SUCCESS/EXIT_FAILURE
зачем? они разве могут быть определены иначе, как 0/1?

0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
10.04.2011, 15:42
Ну по крайней мере ни в POSIX
The value of status may be 0, EXIT_SUCCESS, EXIT_FAILURE, or any other value, though only the least significant 8 bits (that is, status & 0377) shall be available to a waiting parent process.
ни в C99 (секции 7.20. и 7.20.4.3) нет конкретных значений для этих макросов. Значит в теории вполне себе могут быть значения отличные от 0/1, но в реале не встречал такого.
0
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 21
12.04.2011, 12:51  [ТС]
есть такая тема, у нас сервера удаленные имеют свойства не падать, а зависать)) в этом случае они норм пингуются, но данных с них мы не получаем)) электронщики спаяли схемку, которая посылает сигнал (в данном случае переключение намлока) допустим ежесекундно)) и ставится таймаут, т.е. если сигнал определенное время не посылается комп ребутается. так вот, это устройства не понимают команды ioctl(), нужно просто писать в порт клавиатуры. есть какие нибудь идеи??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2011, 12:51
Помогаю со студенческими работами здесь

Клавиатура мигает всеми тремя индикаторами Caps Lock, Scroll Lock и Num Lock и соответственно не работает!
Здравствуйте парни и девушки! Столкнулся с такой проблемой! Имеется клавиатура Genius Ergomedia 700! Так вот. Начал замечать интересную...

Работа с клавиатурой (клавиши num lock, caps lock, scroll lock)
определить состояние статуса клавиш &quot; num lock, caps lock,scroll lock &quot; с отображением и их измением на экране

Горят лампочки caps lock и num lock, ноутбук не включается
Доброе время суток, форумчане. Такая проблема, утром включаю ноутбук asus n53d, на нем одновременно загораются лампочки caps lock и num...

При нажатии на клавиши Num Lock, Caps Lock, Insert вывести в StatusBar состояние кнопок C++
Добрый день, уважаемые программисты, студенты, школьники, а также все посетители этого замечательного форума. помогите, пожалуйста,...

Узнать включен ли Caps Lock и Num Lock
На форме 2 label. 1 - Caps 2 - Num Если включен Caps или Num, то закрасить их в черный цвет, если выключен, то в серый. Спасибо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru