Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CAPS Lock установить программно верх [D7, XP]


dis12345 ©   (2012-01-23 15:03:00) 

Подскажите пожалуйста как программно установить caps lock вверх и низ?
Нашел переключение в противоположное
var  
 KS: TKeyboardState;  
begin  
 GetKeyboardState(KS);  
 KS[020] := KS[020] xor 1;  

а как заведомо в верхнее или нижнее ?


dis12345   (2012-01-23 15:27:00) [1]

вспоинил про Delphi World- выручила....

procedure SetCAPSLockLedState(bOn: Boolean);    //  caps lock
var
  KBState: TKeyboardState;
  Code: Byte;
begin
  Code := VK_CAPITAL;
  GetKeyboardState(KBState);
  if (Win32Platform = VER_PLATFORM_WIN32_NT) then
  begin
    if Boolean(KBState[Code]) <> bOn then
    begin
      keybd_event(Code,
                  MapVirtualKey(Code, 0),
                  KEYEVENTF_EXTENDEDKEY,
                  0);

      keybd_event(Code,
                  MapVirtualKey(Code, 0),
                  KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
                  0);
    end;
  end
  else
  begin
    KBState[Code] := Ord(bOn);
    SetKeyboardState(KBState);
  end;
end;


Германн   (2012-01-23 15:17:00) [2]


> dis12345 ©   (23.01.12 15:03)
>
> Подскажите пожалуйста

http://www.podgoretsky.com/ddp/bits.aspx


RWolf   (2012-01-23 15:04:00) [3]

как думаешь, почему в коде написано именно xor?


Наверх

Титульная страница Поиск, карта сайта Написать письмо