• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Каким образом в программе включить Caps Lock клави

  • Автор темы Guest_Egor
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Egor

Каким образом в программе включить Caps Lock клавиатуры.
 
V

Vagor.ini

Код:
procedure TMyForm.Button1Click(Sender: TObject);
Var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
if (KeyState[VK_NUMLOCK] = 0) then
 KeyState[VK_NUMLOCK] := 1
else
 KeyState[VK_NUMLOCK] := 0;
SetKeyboardState(KeyState);
end;
 
Z

zubr

Функция SetKeyboardState с CAPS LOCK не работает. Вот выдержка из WinSDK:
Remarks

Because the SetKeyboardState function alters the input state of the calling thread and not the global input state of the system, an application cannot use SetKeyboardState to set the NUM LOCK, CAPS LOCK, or SCROLL LOCK indicator lights on the keyboard.
Можно сделать с помощью функции keybd_event:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState);
if (KeyState[VK_CAPITAL] = 0) then
begin
keybd_event(VK_CAPITAL, MapVirtualKey(VK_CAPITAL, 0), 0, 0);//нажать клавишу
Sleep(1);
keybd_event(VK_CAPITAL, MapVirtualKey(VK_CAPITAL, 0), KEYEVENTF_KEYUP, 0);//отпустить клавишу
end;
end;
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!