【发布时间】:2016-12-26 17:04:00
【问题描述】:
这里有一些 linux 中的代码,例如:
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 没有接近我。 有没有简单的方法来打开/关闭 Windows 上的 Caps Lock、Scroll Lock 和 Num Lock LED?
【问题讨论】:
-
快速谷歌搜索发现了这个古老的微软网页。它有 VB6 的说明,但你应该能够理解它:support.microsoft.com/en-us/kb/177674
-
来自
keybd_event文档的顶部:注意此功能已被取代。请改用 SendInput。 事实上,SetKeyboardState解释说SendInput是正确的做法。 -
seq_activate[3] = {3, 5, 4}; //3 - Caps lock & Scroll Lock on, 5 - Scroll Lock & Num Lock on\\ 据我了解,在 SendInput 中,不能同时发送命令来按下 Scroll Lock 和 Caps Lock。只有第一个 Scroll,然后才到 Caps。我可能错了
标签: c++ windows keyboard capslock