Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2011, 18:09   #1
"Lana"@
Пользователь
 
Регистрация: 19.09.2009
Сообщений: 14
По умолчанию как включить Web cam?

Дорогие мужчины!Помогите решить проблему:
На ноутбуке Fudjitsu Siemens поломалась клавиатура(а встроенную камеру я включала именно с клавиатуры(Fn+кам),сейчас пользуюсь ноутбуком от стационарной клавиатуры и там нет клавиши Fn.Подскажите,каким еще способом можно включить камеру???
Заранее спасибо.Очень надо.
"Lana"@ вне форума Ответить с цитированием
Старый 21.05.2011, 20:33   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

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 получение скан-кода через хук.zip (158.2 Кб, 41 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.08.2011, 11:23   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Так, кто там хотел включать-отключать камеру другими клавишами?

1- идем сюда http://support.microsoft.com/kb/311272/ru и качаем себе devcon под 32/64 версию виндов, распаковываем в удобное место
2- в командной строке пишем
Код:
devcon status *
и смотрим, какие устройства у нас есть (это к тому, чем мы можем управлять)
3- создаем два ярлыка на рабочем столе, в командной строке его свойств находим куда закинули распакованный devcon и пишем для 1 и 2 ярлыков:
Код:
devcon.exe enable =image usb*
Код:
devcon.exe disable =image usb*
4- тут же в свойствах назначаем в ярлыках любимую комбинацию "горячих клавиш", пользуемся
5- все, таким же макаром можно выключать-включать флешки и диски, блютуз, вай-фай ...для usb смотреть можно и так:
Код:
devcon status usb*
И так:
Код:
devcon findall usb*
Можно выключить-включить питание концентратора:
Код:
devcon disable "@usb\root_hub\идентификатор"

p.s.: впрочем, это все и так понятно, ничего нового тут нет, авось кому пригодится ...исходники devcon-а есть на Микрософте, впрочем проще заюзать готовый devcon.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как включить Web cam? "Lana"@ Общие вопросы .NET 3 19.07.2011 20:52
как включить все 4 ядра netbioz Компьютерное железо 0 09.04.2010 15:17
подскажите, как включить блютуз??? "Lana"@ Компьютерное железо 5 28.11.2009 12:19
C, web-cam & linux Vitaliy21 Общие вопросы C/C++ 1 03.09.2008 19:50