![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение состояния функциональных клавиш [D6, WinXP]
Deedlit © (2003-04-04 13:05:00)Как узнать в определенный момент, нажат ли Ctrl, Shift? В обработчике НЕТ константы TShiftState, специально это подчеркиваю после общения в местном чате. :)
Есть функцииGetKeyStateиGetKeybaordState. Первая возвращает состоянии конкретной клавиши (код клавиши передается в параметре), вторая - состояние всей клавиатуры в виде массива.
1) Как проанализировать возвращаемоеGetKeyStateзначение? Там написано: анализ верхнего бита. Я в затруднении. :(
2) Какой массив нужен дляGetKeyboardState? И как в нем найти нужные адреса клавиш, функциональных в том числе?
Помогите, мастаки-программисты. :)
Deedlit (2003-04-04 15:56:00) [1]Нефиг нафиг пополам... [озадаченно]Работает! Спасибо огромное!
Barmutik (2003-04-04 13:24:00) [2]Функция возвращающая состояние функциональных клавиш в любое время.
function GetShiftState: TShiftState;
begin
Result := [];
if GetKeyState(VK_SHIFT) < 0 then Include(Result, ssShift);
if GetKeyState(VK_CONTROL) < 0 then Include(Result, ssCtrl);
if GetKeyState(VK_MENU) < 0 then Include(Result, ssAlt);
end;