Форум: "Основная";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
ВнизЗажигание клавиш Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c