PDA

Просмотр полной версии : WinApi


Izzyy
22.07.2003, 20:26
Как с помощью сабжа узнать статус клавиш типа Num Lock, Caps Lock & etc....?:idontnow:

Izzyy
22.07.2003, 20:26
Ну и естествено изменять их....

alexey_ma
22.07.2003, 23:40
Вот так:

SHORT s=0;
s=GetKeyState(VK_CAPITAL ); //CAPSLOCK
if(s & 1)
m_Stat="On";
else
m_Stat="Off";

Изменить состояние на противоположное можно парой:

keybd_event( VK_NUMLOCK,0x45,KEYEVENTF_EXTENDEDKEY | 0,0 ); //DOWN /ВНИЗ
keybd_event( VK_NUMLOCK,0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,0);//UP/Вверх

RaZEr
22.07.2003, 23:40
Посмотреть можно GetKeyboardState, а поставить SetKeyboardState или:
#include <windows.h>

void SetNumLock( BOOL bState )
{
BYTE keyState[256];

GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );

// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}

void main()
{
SetNumLock( TRUE );
}

RaZEr
22.07.2003, 23:44
2 alexey_ma: Прям как в большом спорте, ты меня опередил на доли секунды :) ... это я к тому, почему я запостил такой же ответ.

Izzyy
23.07.2003, 00:26
Сабж :dance: