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

Вниз

Проблема с SetKeyboardState();   Найти похожие ветки 

 
EHOT ©   (2006-03-27 13:33) [0]

Помогите советом. Использую в проге переклюение Caps, Scroll.

GetKeyboardState(K);
K[VK_CAPITAL]:=1;
SetKeyboardState(K);

Переrлючение срабатывает, а светодиоды на клаве никак не реагируют...


 
MBo ©   (2006-03-27 13:39) [1]


procedure SwitchToggleKey(Key: byte; State: boolean);
var
 ks: TKeyboardState;
 ScanCode: integer;
begin
 if not key in [VK_CAPITAL, VK_NUMLOCK, VK_SCROLL, VK_INSERT] then
   exit;
 if (key = VK_NUMLOCK) and (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then
 begin
   GetKeyboardState(ks);  {for Win95/98}
   if state then
     ks[key] := ks[key] or 1
   else
     ks[key] := ks[key] and 254;
   SetKeyboardState(ks);
 end
 else
   if odd(GetKeyState(key)) <> state then
   begin
     ScanCode := MapVirtualKey(key, 0);
     keybd_event(key, ScanCode, {KEYEVENTF_EXTENDEDKEY} 0, 0 );
   {Simulate a key release}
   keybd_event(key, ScanCode, {KEYEVENTF_EXTENDEDKEY or } KEYEVENTF_KEYUP, 0);
 end;
end;

Note that not all controls "honor" the INSERT key, and others will only respond to the INSERT key while they have focus. I"m surprised that the Extended Key "attribute" works for the non-extended keys. Strangely enough, it works as well without KEYEVENTF_EXTENDEDKEY.

Tip by Werner Hafner



 
EHOT ©   (2006-03-27 13:47) [2]

Огромносе спасибо!!! :)



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

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

Наверх




Память: 0.47 MB
Время: 0.029 c
2-1142870727
Asmadei
2006-03-20 19:05
2006.04.09
послать на rs232 17kb данных


2-1143040341
Profik
2006-03-22 18:12
2006.04.09
Глюк с открытием базы по сети


15-1142584014
Alex_Delphi
2006-03-17 11:26
2006.04.09
Посоветуйте какой генератор отчотов наиболее лучий для работы


2-1143037120
Lera
2006-03-22 17:18
2006.04.09
разные exe файлы


2-1142985857
Wood
2006-03-22 03:04
2006.04.09
Поток-корректное завершение...