可以使用SetWindowsHookEx()捕获每个键盘操作,但不能使用睡眠按钮捕获。您可以在控制面板中将其设置为“不执行任何操作”,但我想对其执行一些有用的操作。这可能吗? (我正在使用Das Keyboard 4 Professional)。
答案 0 :(得分:1)
This old MSDN page列出了电源操作键的扫描码:
以下为OnNow硬件定义键盘电源开关的正确扫描码:
Power event Set1: Make = E0, 5E Break = E0, DE Set2: Make = E0, 37 Break = E0, F0, 37 Sleep event Set1: Make = E0, 5F Break = E0, DF Set2: Make = E0, 3F Break = E0, F0, 3F Wake event Set1: Make = E0, 63 Break = E0, E3 Set2: Make = E0, 5E Break = E0, F0, 5E
Set 2中断代码也需要0xE0前缀,否则系统会看到新密钥关闭但看到一些不同的密钥出现。
但是如果你看一下USB HID tables就会有一些叫做“电源控制”的东西
电源控制可以使系统进入以下状态:全功率,低功耗和断电
电源控制用法 系统控制 集合影响系统 等级权力。
系统睡眠 OSC - 当预期的操作是启动系统范围的低时断言 电源模式现在。如果系统已经处于低功耗状态,则没有 影响。
因此键盘可能直接使用USB协议进行睡眠。