
Сообщение от
Titus
это позволяет ИНВЕРТИРОВАТЬ лампочку, но не управлять ей напрямую.
Сначала надо прочитать состояние лампочки (которое отслеживает Windows) и не инвертировать лампочку, если она уже в нужном состоянии:
Код:
void SetCapsLock( bool bState )
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_CAPITAL] & 1)) ||
(!bState && (keyState[VK_CAPITAL] & 1)) )
{
// Simulate a key press
keybd_event( VK_CAPITAL,
0,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_CAPITAL,
0,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
---------- Post added at 18:02 ---------- Previous post was at 17:58 ----------

Сообщение от
Titus
Но ведь системные клавиши работают! Капслоки всякие тоже зажигают лампочки.
DirectX - это подсистема Windows, написанная тем же автором.