Автор: pascal 25.10.2002 16:41
Как заставить мигать индикаторы на клавиатуре?
Автор: AlaRic 25.10.2002 21:35
Блин знал ведь когда то ....ничо вспомним!
Автор: Clane 26.10.2002 1:18
Код
procedure SetNumLock(bState:Boolean);
var KeyState : TKeyboardState;
begin
GetKeyboardState(KeyState);
if ( (bState) and (not ((KeyState[VK_NUMLOCK] and 1)=1) ) or ( (not (bState)) and ((KeyState[VK_NUMLOCK] and 1)=1))) then
// Simulate a key press
keybd_event(VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
// Simulate a key release
keybd_event( VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP), 0);
end;
Автор: mj 26.10.2002 2:48
Цитата
procedure SetNumLock(bState:Boolean);
var KeyState : TKeyboardState;
begin
GetKeyboardState(KeyState);
if ( (bState) and (not ((KeyState[VK_NUMLOCK] and 1)=1) ) or ( (not (bState)) and ((KeyState[VK_NUMLOCK] and 1)=1))) then
// Simulate a key press
keybd_event(VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or 0), 0);
// Simulate a key release
keybd_event( VK_NUMLOCK, $45, (KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP), 0);
end;
В XP работает, но в пределах одного приложения и лампочки не мигают :'(
Автор: Tosha 26.10.2002 9:39
А тоже самое но для обычного Паскаля?
Автор: mj 26.10.2002 23:46
Из личного архива:
Mem[$0040:$0017]
7 - Insert (включено)
6 - CapsLock (включено)
5 - NumLock (включено)
4 - ScrollLock (включено)
3 - Alt (нажата)
2 - Ctrl (нажата)
1 - LeftShift (нажата)
0 - RightShift (нажата)
Mem[$0040:$0018]
7 - Insert (нажата)
6 - CapsLock (нажата)
5 - NumLock (нажата)
4 - ScrollLock (нажата)
3 - Ctrl-NumLock (включено)
Это расшифровки битовых значений адресов памяти DOS.
Опять же предупреждаю, что в WinXP всё это действует в пределах одного процесса и не влияет на действительные показания индекаторов.