![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Scroll Lock [D5, WinXP]
BelchonokH © (2003-12-17 22:26:00)
Доброго вам! А как можно программно поморгать лампочкой Scroll Lock на клавиатуре?
ALEIIIKA (2003-12-23 10:06:00) [1]
Вот функции которые возращают активна или нажата нужная клавиша.
// функции проверки нажатия клавиш
function AltKeyDown : boolean;
begin
result:=(Word(GetKeyState(VK_MENU)) and $8000)<>0;
end;
function CtrlKeyDown : boolean;
begin
result:=(Word(GetKeyState(VK_CONTROL)) and $8000)<>0;
end;
function ShiftKeyDown : boolean;
begin
result:=(Word(GetKeyState(VK_SHIFT)) and $8000)<>0;
end;
function CapsLock : boolean;
begin
result:=(GetKeyState(VK_CAPITAL) and 1)<>0;
end;
function InsertOn : boolean;
begin
result:=(GetKeyState(VK_INSERT) and 1)<>0;
end;
function NumLock : boolean;
begin
result:=(GetKeyState(VK_NUMLOCK) and 1)<>0;
end;
function ScrollLock : boolean;
begin
result:=(GetKeyState(VK_SCROLL) and 1)<>0;
end;
Sam Stone (2003-12-18 02:17:00) [2]старый паскалевский код(не знаю, будет ли работать в дельфе):
Var ShiftByte: byte absolute $0000:$0417;
If ShiftByte and $80 0 then Txt:="scrolllock";
Собсно, если не изменяет память в столь поздний час, чтоб включить капс, нужно сделать вот чего: shiftbyte:=shiftbyte or $80; Остальные лампочки $40 & $20
VNavigator (2003-12-18 00:51:00) [3]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_SCROLL,0,0,0);
keybd_event(VK_SCROLL,0,vk_up,0);
end;
//или
procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_SCROLL,MapVirtualKey(VK_SCROLL,0),0,0);
keybd_event(VK_SCROLL,MapVirtualKey(VK_SCROLL,0),vk_up,0);
end;
Talla2k (2003-12-18 00:21:00) [4]
В 9x знаю !!!А в XP не срабатывает(лично у меня!!!).Если надо для 9x скажи ,я не жадный!!!