Я использую свой ноутбук в качестве настольного компьютера довольно часто, примерно в 75% случаев. В качестве настольной установки он имеет внешний монитор, динамики, клавиатуру, мышь и веб-камеру - последние три подключены через USB.
Затем он располагается таким образом, что его встроенная веб-камера становится бесполезной для распознавания лиц и видеочатов, однако некоторые из используемых мной программ не предлагают никакого способа выбора веб-камеры по умолчанию.

Поэтому мне было интересно, есть ли способ, с помощью утилиты, сценариев или иным образом, автоматически отключить встроенную веб-камеру, когда подключена внешняя.

(Я использую Windows 7 на Asus Zenbook Prime UX32VD, если это поможет.)

3 ответа3

5

Теория первая

  • Нам нужно периодически проверять, подключена ли внешняя веб-камера к компьютеру.
  • Когда внешняя веб-камера подключена, встроенная должна быть отключена.
  • Затем встроенное устройство должно быть снова включено после отключения внешней камеры.

Предварительные шаги

Предложенное решение использует методы пакетного сценария и планирования задач для обработки всего этого. Прежде чем мы сможем перейти к сочным деталям, нам нужно сделать несколько вещей.

Получить утилиту Device Console (DevCon)

DevCon - это инструмент командной строки, который отображает подробную информацию об устройствах и позволяет искать устройства и управлять ими из командной строки. DevCon включает, отключает, устанавливает, настраивает и удаляет устройства на локальном компьютере и отображает подробную информацию об устройствах на локальных и удаленных компьютерах.

  1. Загрузите соответствующий пакет .cab зависимости от операционной системы:

  2. Откройте архив .cab и извлеките файл с именем fil[some letters and numbers] . Это должно быть около 80 КБ.

  3. Переименуйте его в devcon.exe .

Примечание. Чтобы включить / отключить любое устройство, необходимо запустить devcon.exe с правами администратора.

Определите необходимые аппаратные идентификаторы

Windows идентифицирует устройства и классы настройки, к которым они принадлежат, используя специальный набор идентификаторов. Эти идентификаторы используются для сопоставления аппаратных устройств с драйверами устройств, которые позволяют им взаимодействовать с Windows.

Один или несколько идентификаторов устройства назначаются устройству его производителем. Один из них, идентификатор оборудования, очень специфичен - в зависимости от производителя, модели и даже версии прошивки устройства. Другие идентификаторы устройств также присваиваются и являются более общими, причем идентификаторы, возможно, назначаются другим устройствам от производителя, которые совместимы на некотором уровне.

Источник: Обнаружение идентификаторов оборудования и классов настройки устройства для ваших устройств.

  1. Подключите внешнюю веб-камеру.
  2. Откройте диспетчер устройств (devmgmt.msc).
  3. Найдите свою встроенную камеру в списке.
  4. Щелкните правой кнопкой мыши запись для устройства и выберите Свойства.
  5. Выберите вкладку Details и выберите Hardware Ids из списка свойств.
  6. Щелкните правой кнопкой мыши первое показанное значение и скопируйте его. Обратите внимание на значение где-то.
  7. Повторите шаги 3-6 для внешней веб-камеры.

Создание пакетного скрипта

  1. Сохраните следующий код как WebcamCheck.cmd:

    @echo off REM убедитесь, что есть хотя бы 2 параметра, если "% ~ 2" == "" exit /b 2 REM убедитесь, что devcon.exe не пропущен cd /d "% ~ dp0", если не существует devcon.exe exit /b 3 REM устанавливает интервал в 15 секунд, если он не указан, если "% ~ 3" == "" (установить интервал = 15) иначе (установить интервал =% 3): опрос для /f "токены = 1 delims =\" %% G in ("% ~ 2") do (devcon.exe find * %% G * | findstr /i /c: "% ~ 2"> nul) goto: проверка% errorlevel%: check0 devcon.exe status "% ~ 1 "| findstr /i /c: "отключено"> nul if% errorlevel% == 1 (devcon.exe отключить "% ~ 1"): время ожидания /t% интервал% /nobreak> nul goto: poll: check1 devcon.exe status "% ~ 1" | findstr /i /c: "отключено"> nul, если% errorlevel% == 0 (devcon.exe включает "% ~ 1") Перейти к: ждать
    
  2. Скопируйте файл devcon.exe и вставьте в тот же каталог, что и файл, который вы только что сохранили.

Как это устроено

Сценарий принимает три параметра: первый - идентификатор целевого устройства (встроенная веб-камера); второй - идентификатор устройства запуска (внешняя веб-камера); третий - интервал опроса (в секундах), и это необязательно.

Сначала скрипт проверит, достаточно ли параметров, и что devcon.exe не пропущен.

Если интервал опроса не указан, вместо него будет использоваться значение по умолчанию (15 секунд). Это значение используется для определения того, сколько секунд должно пройти между проверками каждого устройства. Понижение этого значения означает, что обнаружение происходит быстрее, а это, в свою очередь, означает, что нагрузка на систему возрастает. Перед тем, как попробовать другое значение, протестируйте его со значением по умолчанию и посмотрите, как оно работает. В любом случае, я бы не рекомендовал опускаться ниже 10 секунд.

Пакетный сценарий требует общих идентификаторов устройств, которые используют следующий формат:

XXX\VID_YYYY&PID_ZZZZ

XXX - это класс устройств (например, USB, PCI и т.д.); YYYY - идентификатор поставщика, уникальное значение, присваиваемое производителям оборудования; ZZZZ - это идентификатор продукта, который идентифицирует модель устройства.

Например, если вы получили идентификатор устройства, например:

USB\VID_1D4D&PID_1002&REV_0039&MI_00

общий идентификатор будет:

USB\VID_1D4D&PID_1002

После проверки, подключено ли триггерное устройство (внешняя веб-камера), сценарий либо отключит, либо включит целевое устройство (встроенную веб-камеру), если оно уже не отключено / не включено.

Планирование это

Единственное, что нам сейчас нужно, это заставить пакетный скрипт автоматически запускаться при входе в систему.

  1. Откройте планировщик задач (taskschd.msc) и нажмите « Действие»> "Создать задачу".
  2. Назовите это WebcamCheck .
  3. Находясь на вкладке General, нажмите Change User или Group.
  4. Введите system в текстовое поле, нажмите « Проверить имена», а затем нажмите « ОК».
  5. Включите опцию Запустить с наивысшими привилегиями.
  6. Измените значение для настройки на Windows 7, Windows Server 2008 R2.
  7. Выберите вкладку « Триггеры » и нажмите « Создать».
  8. Измените Начать задачу на При входе в систему, затем нажмите OK.
  9. Переключитесь на вкладку Actions и нажмите New.
  10. Введите "X:\Path\to\WebcamCheck.cmd" в текстовом поле « Программа / сценарий», заменив его фактическим путем к файлу.
  11. Введите "XXX\VID_YYYY&PID_ZZZZ" "AAA\VID_BBBB&PID_CCCC" в текстовом поле « Добавить аргументы», заменив идентификаторы устройства правильными значениями.
  12. Перейдите на вкладку « Условия » и снимите флажок « Запускать задачу» только в том случае, если компьютер включен в сеть.
  13. Выберите вкладку « Настройки » и снимите флажки « Разрешить выполнение задачи по требованию» и « Остановить задачу, если она выполняется дольше полей».
  14. Включите задачу "Выполнить" как можно скорее после пропуска запланированного запуска.
  15. Оставьте все остальные настройки на значения по умолчанию и нажмите ОК.

Примечание. Если вы хотите, чтобы встроенная веб-камера была отключена как можно скорее, подключите внешнюю перед входом в систему.


Обновить

Вот упрощенная версия пакетного скрипта, который будет проверять внешнюю камеру только при запуске и затем завершать работу:

@echo off

REM ensure there at least 2 parameters
if "%~2" == "" exit /b 2

REM verify devcon.exe is not missing
cd /d "%~dp0"
if not exist devcon.exe exit /b 3

:check
for /f "tokens=1 delims=\" %%G in ("%~2") do (devcon.exe find *%%G* | findstr /i /c:"%~2" >nul)
goto :check%errorlevel%

:check0
devcon.exe status "%~1" | findstr /i /c:"disabled" >nul
if %errorlevel% == 1 (devcon.exe disable "%~1")
exit /b

:check1
devcon.exe status "%~1" | findstr /i /c:"disabled" >nul
if %errorlevel% == 0 (devcon.exe enable "%~1")
exit /b
0

Вы можете попробовать портативное бесплатное приложение «WebCam On-Off v1.0», которое также поддерживает Cmd http://www.sordum.org/8585/webcam-on-off-dont-let-your-webcam-spy-on -вы/

0

Вы можете попробовать отключить веб-камеру через панель управления или в диспетчере устройств. Это должно позволить установить внешнюю веб-камеру и быть единственной веб-камерой, которая работает в данный момент. после этого вы всегда можете просто включить устройство снова.

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .