imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 22.07.2003, 20:26     # 1
Izzyy
Junior Member
 
Аватар для Izzyy
 
Регистрация: 20.06.2003
Адрес: Israel
Сообщения: 106

Izzyy Путь к славе только начался
Question WinApi

Как с помощью сабжа узнать статус клавиш типа Num Lock, Caps Lock & etc....?
Izzyy вне форума  
Старый 22.07.2003, 20:26     # 2
Izzyy
Junior Member
 
Аватар для Izzyy
 
Регистрация: 20.06.2003
Адрес: Israel
Сообщения: 106

Izzyy Путь к славе только начался
Ну и естествено изменять их....
Izzyy вне форума  
Старый 22.07.2003, 23:40     # 3
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Вот так:

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/Вверх
__________________
Best Regards
alexey_ma вне форума  
Старый 22.07.2003, 23:40     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Посмотреть можно 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     # 5
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
2 alexey_ma: Прям как в большом спорте, ты меня опередил на доли секунды ... это я к тому, почему я запостил такой же ответ.
RaZEr вне форума  
Старый 23.07.2003, 00:26     # 6
Izzyy
Junior Member
 
Аватар для Izzyy
 
Регистрация: 20.06.2003
Адрес: Israel
Сообщения: 106

Izzyy Путь к славе только начался
Cool Спасибо

Сабж
Izzyy вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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