Просмотр полной версии : WinApi
Как с помощью сабжа узнать статус клавиш типа Num Lock, Caps Lock & etc....?:idontnow:
Ну и естествено изменять их....
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/Вверх
Посмотреть можно 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 );
}
2 alexey_ma: Прям как в большом спорте, ты меня опередил на доли секунды :) ... это я к тому, почему я запостил такой же ответ.
vBulletin® v3.8.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.