在 Windows 10 上,如何确定连接的网络摄像头当前是否处于活动状态,而无需在摄像头关闭时将其打开?
目前,我可以尝试使用相机拍照,如果失败,则假设相机正在使用中。但是,这意味着摄像头的活动 LED 将打开(因为摄像头正在使用)。由于我想每隔几秒检查一次相机的状态,因此使用此方法来确定相机是否正在使用是不可行的。
我已使用 Win32 和 UWP 标签,并将接受使用任一 API 的解决方案。
我发现了一个小窍门here https://community.spiceworks.com/topic/2273558-check-if-webcam-being-used-with-script-reading-hardware-properties-values?page=1#entry-9024007其中提到 Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackages 下的注册表项在使用网络摄像头时会发生变化。
这里有一些键可以跟踪应用程序使用网络摄像头时的时间戳。当网络摄像头正在使用中时,“LastUsedTimeStop”似乎为 0,因此要判断网络摄像头是否正在使用中,我们可以简单地检查是否有任何应用程序具有 LastUsedTimeStop==0。
下面是一个快速的 Python 类,用于轮询注册表以了解网络摄像头的使用情况:https://gist.github.com/cobryan05/8e191ae63976224a0129a8c8f376adc6 https://gist.github.com/cobryan05/8e191ae63976224a0129a8c8f376adc6
用法示例:
import time
from webcamDetect import WebcamDetect
webcamDetect = WebcamDetect()
while True:
print("Applications using webcam:")
for app in webcamDetect.getActiveApps():
print(app)
print("---")
time.sleep(1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)