Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.28;
Скачать: CL | DM;

Вниз

Зажигание клавиш   Найти похожие ветки 

 
Konsul   (2002-01-03 13:32) [0]

Как программно зажечь и потушить Num Lock, Caps Lock, Scroll Lock?


 
Alx2 ©   (2002-01-03 14:04) [1]

Пример описан в SDK.
Перевел на Паскаль.


procedure SetNumLock( bState : Boolean );
var keyState : TKeyboardState;
begin

GetKeyboardState(keyState);
if( (bState and ((keyState[VK_NUMLOCK] and 1)=0)) or
((not bState) and ((keyState[VK_NUMLOCK] and 1)=1) ))
then
begin
// Simulate a key press
keybd_event( VK_NUMLOCK,
$45,
KEYEVENTF_EXTENDEDKEY, 0 );

// Simulate a key release
keybd_event( VK_NUMLOCK,
$45,
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);
end
end;


По поводу ScrollLock:
везде замени NUMLOCK на Scroll.


 
Alx2 ©   (2002-01-03 14:15) [2]

Да, вдогонку.
Клавиша для CapsLock зовется VK_Capital.
Собственно, вот полный ответ на Ваш вопрос:

procedure SetSomeLock( bState : Boolean; what : integer );
var keyState : TKeyboardState;
Key : Word;
begin
Case what of
2 : Key := VK_CAPITAL;
3 : Key := VK_SCROLL
else
Key := VK_NUMLock;
end;
GetKeyboardState(keyState);
if( (bState and ((keyState[key] and 1)=0)) or
((not bState) and ((keyState[key] and 1)=1) ))
then
begin
// Simulate a key press
keybd_event( key,
$45,
KEYEVENTF_EXTENDEDKEY, 0 );

// Simulate a key release
keybd_event( key,
$45,
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);
end
end;


SetSomeLock(true,1) - включаем NumLock;
SetSomeLock(true,2) - включаем CapsLock;
SetSomeLock(true,3) - включаем ScrollLock;


 
Filat ©   (2002-01-11 20:08) [3]

Извините, но как её правильно зарегистрировать в процедурах.



Страницы: 1 вся ветка

Текущий архив: 2002.01.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
14-90364
Olgerd
2001-12-02 19:10
2002.01.28
Мелочи. To Merlin.


4-90431
Andrey Mihaylov
2001-11-30 01:38
2002.01.28
Несколько вопросов о сервисах..... (((


3-90201
victor
2001-12-21 13:09
2002.01.28
поле со счетчиком в ОРАКЛЕ


3-90226
Ross
2001-12-24 21:58
2002.01.28
ProgressBar


1-90288
KingSize
2002-01-10 17:57
2002.01.28
Открытие