0
Вот некоторые приходят кода в Linux, например:Как я могу включить/выключить Caps Lock, Scroll Lock, ключ Num Lock программно
void set_leds(int val)
{
int fd = open ("/dev/console", O_WRONLY);
// argument (Bit 0 - Scroll Lock, Bit 1 - Num Lock, Bit 2 - Caps lock)
ioctl (fd, KDSETLED, val);
close(fd);
}
void set_leds_sequence(unsigned char * cmdSeq, int len)
{
int i;
for (i = 0; i < len; ++i)
{
set_leds(cmdSeq[i]);
}
}
void activate(void)
{
unsigned char seq_activate[3] = {3, 5, 4};
set_leds_sequence(seq_activate, 3);
}
Как я могу сделать что-то подобное на ОС Windows (C++ \ C) ? У меня такое чувство, что keybd_event не подходит ко мне. Есть ли простой способ включения/выключения Caps Lock, Scroll Lock и Num Lock LEDS в Windows?
быстрый поиск Google показал этот древний майкрософт веб-страницы. он имеет инструкции для VB6, но вы должны иметь возможность это понять: https://support.microsoft.com/en-us/kb/177674 –
В верхней части документа 'keybd_event': * Примечание. Эта функция имеет был заменен. Вместо этого используйте SendInput. * И действительно, 'SetKeyboardState' объясняет, что' SendInput' - правильный способ сделать это. – chris
seq_activate [3] = {3, 5, 4}; // 3 - Блокировка Caps & Scroll Lock on, 5 - Блокировка прокрутки и Num Lock в \\ В SendInput, как я понял, не может одновременно отправить команду на нажатие Scroll Lock и Caps Lock. Только первый свиток, а затем только к Caps. Возможно, я ошибаюсь – MaysSpirit