Последние записи
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
22nd
Май
Как включить Web cam на ноутбуке?
Posted by Chas under Топик-обзор
На ноутбуке Fudjitsu Siemens поломалась клавиатура(а встроенную камеру я включала именно с клавиатуры(Fn+кам),сейчас пользуюсь ноутбуком от стационарной клавиатуры и там нет клавиши Fn.Подскажите,каким еще способом можно включить камеру?
raxp:
The fn-key is BIOS controlled and cannot be changed within the OS:
В ноутбучных и малогабаритных клавиатурах используется клавиша Fn. Как правило, она находится справа от левого Ctrl. У ноутбуков Lenovo – наоборот. В некоторых ноутбуках, например, lenovo x100e в BIOS’е есть настройка, позволяющая поменять левый Ctrl и Fn местами. Техническая реализация клавиши Fn отличается от других и привязана к «железу», а не к операционной системе, а это означает, что механизм переопределения с помощью записи в реестр Windows здесь не поможет. Поэтому, хотя эта клавиша и может генерировать скан-код – неодинаковый у разных моделей ноутбуков –, ее полноценное переопределение с помощью записи в реестр, как подтвердили эксперименты, невозможно. Даже если клавише Fn присвоить какое-то другое значение скан-кода, и она будет выполнять соответствующую ему новую функцию, свою прежнюю функциональность она при этом не потеряет. Аналогично, если присвоить скан-код клавиши Fn какой-то другой, это не приведет к тому, что эта другая клавиша начнет выполнять функции Fn.
В некоторых случаях убунт-линуксей такое возможно на уровне ядра и гораздо проще 1 2.
P.S.: и хотя комбинацию Fn + клавиша можно отловить (получить виртуальный и скан-код), путем навешивания хука, например так:
type
KBDLLHOOKSTRUCT = record
vkd: DWORD;
scd: DWORD;
flag: DWORD;
time: DWORD;
dwExtraInfo: LongWord;
end;
LPKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
var hk: longword;
function KeyboardProc(nCode: integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var kb: LPKBDLLHOOKSTRUCT;
begin
kb:=LPKBDLLHOOKSTRUCT(lParam);
if wParam = WM_KEYDOWN then
Form1.caption:= format('virtual key=%d | scan=%d', [kb.vkd, kb.scd]);
//
Result:= -1
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
hk:= SetWindowsHookEx(13,
@KeyboardProc,
hinstance,
0)
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
UnhookWindowsHookEx(hk)
end;
К примеру, включение и выключение тачпада Fn+F7 (последовательные нажатия для включения и выкл) дадут такие коды:
…и их можно даже отловить потом, что дает возможность переназначить реакцию клавиш (без использования ремаппинга в реестре), собственно отлов как раз и не проблема, ибо мы их и так ловим. Вот эмуляция нажатия (keybd_event) для этих клавиш (скан-кодов) не сработает, по крайней мере не на всех.
получение скан-кода через хук.zip (158.2 Кб) |
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)