查看应用程序是否正在 Windows 10 上使用麦克风

问题描述 投票:0回答:2

我正在尝试编写一个脚本来检查网络摄像头和麦克风是否正在使用。对于网络摄像头,我已经设法用 Python 编写了一些东西,但是到目前为止,我还没有找到一个好的方法来为麦克风做同样的事情。

在 Windows 中,系统托盘中有一个专用设置,当应用程序实际使用您的麦克风时,该设置会显示(甚至显示是哪一个):
Microphone Setting
App that is using Microphone

很明显,Windows 知道当前是否使用它(这就是我所需要的),甚至知道哪个应用程序正在使用它。然而我还没有找到任何方法来以任何方式读出该信息。

是否有可能以某种方式从 Windows 本身获取数据? 此时,我什至不介意使用哪种语言,Python、C#、PowerShell 或其他语言。

PS:我知道可能有一些方法可以访问麦克风而不将其显示在系统托盘中,但这种情况与我想要实现的目标无关。

python c# windows powershell microphone
2个回答
2
投票

我现在使用以下方法进行管理 - 我只是截取桌面的屏幕截图,并检查我希望在系统托盘中出现的图标,以防某些应用程序正在使用麦克风。

为此,我使用了可以通过 pip 安装的包 imagesearch
pip3 安装 python-imageseach-drov0

然后我通过该包截取屏幕截图并检查该项目是否在屏幕上可见:

from python_imagesearch.imagesearch import imagesearch

pos = imagesearch(imagePath)
microphone_on = pos[0] != -1
if microphone_on:
    print("Microphone is in use")
else:
    print("Microphone is not in use")

imagePath中定义的图像如下所示:
Microphone Icon

我在以下页面找到了该包的信息:https://brokencode.io/how-to-easily-image-search-with-python/

识别效果非常好且快速,但是当然这可能不是最好的解决方案,并且适用于您只想知道是否有任何东西正在使用麦克风的简单情况。如果有一些可用的 API 可以询问,那就更好了,但总比没有好,解决了我的问题。


0
投票

您可以检查此注册表项: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\麦克风

在 NonPackages 项下,列出了所有使用麦克风的非 Microsoft 应用程序以及可执行文件的路径。如果应用程序当前正在使用麦克风,则 LastUsedTimeStop 值将设置为 0。 干杯!

© www.soinside.com 2019 - 2024. All rights reserved.