J'utilise mon ordinateur portable comme un bureau assez souvent, environ 75% du temps. En tant que configuration de bureau, il dispose d'un moniteur, d'un haut-parleur, d'un clavier, d'une souris et d'une webcam connectés à l'extérieur, les trois derniers sur USB.
Il est alors positionné de telle sorte que sa webcam intégrée devient inutile pour la reconnaissance du visage et les chats vidéo, mais certains des programmes que j'utilise n'offrent aucun moyen de choisir une webcam par défaut.
Je me demandais donc s'il y avait un moyen, par un utilitaire, un script ou autrement, de désactiver automatiquement la webcam intégrée lorsqu'une externe est connectée.
(J'utilise Windows 7 sur Asus Zenbook Prime UX32VD si cela contribue.)
La solution proposée utilise des scripts par lots et des techniques de planification de tâches pour gérer tout cela. Avant de pouvoir sauter sur les morceaux juteux, nous devons faire quelques choses.
DevCon est un outil de ligne de commande qui affiche des informations détaillées sur les périphériques et vous permet de rechercher et de manipuler des périphériques à partir de la ligne de commande. DevCon permet, désactive, installe, configure et supprime les périphériques sur l'ordinateur local et affiche des informations détaillées sur les périphériques sur les ordinateurs locaux et distants.
Téléchargez le package .cab
approprié en fonction du système d'exploitation:
Ouvrez l'archive .cab
et extrayez le fichier nommé fil[some letters and numbers]
. Il devrait être d'environ 80 Ko.
devcon.exe
. Remarque Pour activer / désactiver tout périphérique, devcon.exe
doit être exécuté avec les droits d'administrateur.
Windows identifie les périphériques et les classes d'installation auxquelles ils appartiennent en utilisant un ensemble spécial d'identificateurs. Ces identifiants sont utilisés pour faire correspondre les périphériques matériels avec les pilotes de périphériques qui leur permettent de communiquer avec Windows.
Un ou plusieurs identifiants d'appareil sont attribués à un appareil par son fabricant. L'un d'entre eux, l'identification matérielle, est très spécifique, jusqu'à la marque, le modèle et même la version de firmware de l'appareil. D'autres ID d'appareil sont également attribués et sont plus génériques, les ID pouvant être affectés à d'autres appareils du fabricant compatibles à un certain niveau.
Source: Découverte des ID de matériel et des classes de configuration de périphérique pour vos périphériques
devmgmt.msc
). Enregistrez le code suivant en tant que WebcamCheck.cmd
:
@echo off REM s'assure d'au moins 2 paramètres Si "% ~ 2" == "" exit / b 2 REM vérifier que devcon.exe ne manque pas Cd / d "% ~ dp0" Sinon exister devcon.exe exit / b 3 REM définit l'intervalle à 15 secondes s'il n'est pas spécifié Si "% ~ 3" == "" (intervalle de réglage = 15) autrement (intervalle défini =% 3) :sondage Pour / f "tokens = 1 delims = \" %% G in ("% ~ 2") do (devcon.exe trouver * %% G * | findstr / i / c: "% ~ 2"> nul) Goto: vérifier% errorlevel% : Check0 Statut devcon.exe "% ~ 1" | Findstr / i / c: "disabled"> nul Si% errorlevel% == 1 (devcon.exe disable "% ~ 1") :attendez Timeout / t% interval% / nobreak> nul Goto: sondage : Check1 Statut devcon.exe "% ~ 1" | Findstr / i / c: "disabled"> nul Si% errorlevel% == 0 (devcon.exe enable "% ~ 1") Goto: attendez
Copiez le fichier devcon.exe
et collez dans le même répertoire que le fichier que vous venez d'enregistrer.
Le script prend trois paramètres: le premier est l' identifiant cible du périphérique (la webcam intégrée); Le second est l' ID de l'appareil de déclenchement (la webcam externe); Le troisième est l' intervalle d'interrogation (en secondes), et il est facultatif.
Au début, le script s'assurera qu'il y ait suffisamment de paramètres, et que devcon.exe
ne manque pas.
Lorsqu'aucun intervalle de sondage n'est spécifié, la valeur par défaut sera utilisée à la place (15 secondes). La valeur est utilisée pour déterminer le nombre de secondes qui devraient s'écouler entre chaque contrôle de périphérique. L'abaissement de la valeur signifie que la détection est plus rapide, ce qui signifie qu'il y a plus de frais généraux du système. Avant d'essayer une valeur différente, testez-le avec l'image par défaut et voyez comment cela se passe. Quoi qu'il en soit, je ne recommanderais pas aller au-dessous de 10 secondes.
Le script de lot requiert des identifiants d'appareils génériques , qui utilisent le format suivant:
XXX\VID_YYYY&PID_ZZZZ
XXX
est la classe de périphérique (p. Ex. USB, PCI, etc.); YYYY
est l'ID du fournisseur, une valeur unique attribuée aux fabricants de matériel; ZZZZ est l'ID du produit, qui identifie le modèle de l'appareil.
Par exemple, si vous avez un ID d'appareil comme ceci:
USB\VID_1D4D&PID_1002&REV_0039&MI_00
L'ID générique serait:
USB\VID_1D4D&PID_1002
Après avoir vérifié si le périphérique de déclenchement (webcam externe) est connecté, le script désactivera ou activera le périphérique cible (webcam intégrée), à moins qu'il ne soit déjà désactivé / activé.
La seule chose dont nous avons besoin maintenant consiste à faire démarrer automatiquement le script par lots lors de la connexion.
taskschd.msc
) et cliquez sur Action> Créer une tâche . WebcamCheck
. system
dans la zone de texte, cliquez sur Vérifier les noms , puis cliquez sur OK . "X:\Path\to\WebcamCheck.cmd"
dans la zone de texte Programme / script , en le remplaçant par le chemin de fichier réel. "XXX\VID_YYYY&PID_ZZZZ" "AAA\VID_BBBB&PID_CCCC"
dans la zone de texte Ajouter des arguments , en remplaçant les ID de l'appareil par les valeurs appropriées. Remarque Si vous souhaitez que la webcam intégrée soit désactivée dès que possible, connectez l'externe avant de vous connecter.
Voici une version simplifiée du script batch qui vérifiera la caméra externe uniquement lors de la mise en marche, puis sortez:
@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
Vous pouvez essayer de désactiver la webcam via le panneau de commande ou le gestionnaire de périphérique. Cela devrait permettre à la webcam externe d'être installée et être la seule webcam en cours d'exécution. Ensuite, vous pouvez toujours activer l'appareil à nouveau.
J'espère que cela t'aides.
Vous pouvez essayer une application gratuite de logiciel freeware "WebCam On-Off v1.0", il a aussi un Cmd supporter http://www.sordum.org/8585/webcam-on-off-dont-let-your-webcam-spy-on -toi/