Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 скажи ,я не жадный!!!


Наверх

Титульная страница Поиск, карта сайта Написать письмо