IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   WinApi (https://www.imho.ws/showthread.php?t=34947)

Izzyy 22.07.2003 20:26

WinApi
 
Как с помощью сабжа узнать статус клавиш типа 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 или:
PHP код:

   #include <windows.h>

   
void SetNumLockBOOL bState )
   {
      
BYTE keyState[256];

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

      
// Simulate a key release
         
keybd_eventVK_NUMLOCK,
                      
0x45,
                      
KEYEVENTF_EXTENDEDKEY KEYEVENTF_KEYUP,
                      
0);
      }
   }

   
void main()
   {
      
SetNumLockTRUE );
   } 


RaZEr 22.07.2003 23:44

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

Izzyy 23.07.2003 00:26

Спасибо
 
Сабж :dance:


Часовой пояс GMT +4, время: 04:12.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.