理论上,win10/11系统的笔记本不需要修改什么,直接就可以拿来用。因为我没有其他摄像头设备或台式机,这类用户,应该是需要自行修改一点参数的,我就无法进行测试了。
比较简单的一个小批处理,但是比较实用。搜来搜去,确实没有人做,就自己做了一个。
灵感起因是,我收到了一封勒索邮件,大意如下:我是黑客,我攻击了你的邮箱并黑了你的电脑,然后我拍到了你一边上那种网站、一边做那种事情的视频,指定时间内给钱就删,否则群发。
很老套的欺诈手法了,我相信收到过类似勒索邮件的人应该还有一些。请这些兄弟务必放心,这都是假的。
但是出于此,我还是决定在不需要的时候,把摄像头这个设备直接禁用得了。
大多数笔记本都是没有摄像头挡板的,然后设备管理器的路径也不算浅,去那儿设置也是可以的,但是略显麻烦,所以这项分享工作就显得比较有意义了。
原理也比较简单:先获取管理员权限;调用powershell查询摄像头设备的状态,如果没有设备就直接退出了;如果有的话,就把摄像头当前启用/禁用的状态展示出来,让你决定要不要调整。
查询和切换大概需要1-2秒时间,什么都不用做,耐心等待即可。
如图,敲1是切换摄像头启用/禁用,敲0是退出。Error代表禁用,OK代表启用。
[url=]2022-11-11_194830.jpg[/url]
下面上代码,请保存为UTF8格式的bat
[Asm] 纯文本查看 复制代码 @echo off
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close) & exit
:loop
for /f "delims=" %%a in ('powershell "(Get-PnpDevice -Class Camera).Status"') do set "state_=%%a"
if "%state_%"==" " goto :end
cls
echo/1 - Camera ... %state_%
echo/
echo/--------------------------------------------------
echo/0 - exit
echo/
choice /c "01"
if %errorlevel% equ 1 goto :end
if /i "%state_%"=="OK" (
echo/a | powershell "Disable-PnpDevice -InstanceId (Get-PnpDevice -Class Camera -Status OK).InstanceId"
) else (
echo/a | powershell "Enable-PnpDevice -InstanceId (Get-PnpDevice -Class Camera -Status Error).InstanceId"
)
goto :loop
::
:end
完 |