Содержание материала

 

Code:

type

  TKeyType = (ktCapsLock, ktNumLock, ktScrollLock);

 

procedure SetLedState(KeyCode: TKeyType; bOn: Boolean);

var

  KBState: TKeyboardState;

  Code: Byte;

begin

  case KeyCode of

    ktScrollLock: Code := VK_SCROLL;

    ktCapsLock: Code := VK_CAPITAL;

    ktNumLock: Code := VK_NUMLOCK;

  end;

  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;

 

// Example Call:

// Beispielaufruf:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  SetLedState(ktCapsLock, True);  // CapsLock on

SetLedState(ktNumLock, True);  // NumLock on

SetLedState(ktScrollLock, True);  // ScrollLock on

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить