You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制usbmmidd开机启动时仅创建1个虚拟显示器?

如何限制usbmmidd开机启动时仅创建1个虚拟显示器?

我之前也碰到过类似的重复创建虚拟显示器的问题,主要是因为shell:startup里的脚本可能会在用户登录、系统重启甚至某些后台事件中多次触发执行。要解决这个问题,核心思路就是每次执行命令前先检查是否已经存在虚拟显示器,只有不存在的时候再创建。下面给你两个实用的方案:

方案1:用usbmmidd自带命令查询已启用的虚拟显示器数量

这个方法最精准,直接借助usbmmidd提供的查询命令来判断是否需要创建:

  1. 打开你的批处理文件,替换原有命令为以下内容:
@echo off
:: 先查询当前已启用的虚拟显示器数量
for /f %%i in ('deviceinstaller64 queryidd ^| findstr /c:"Enabled IDDs:"') do set "idd_info=%%i"
:: 从查询结果中提取数字(比如"Enabled IDDs: 1"中的1)
for /f "tokens=3" %%a in ("%idd_info%") do set "idd_count=%%a"

:: 如果数量为0,才创建虚拟显示器
if %idd_count% equ 0 (
    deviceinstaller64 enableidd 1
)
  1. 注意:如果deviceinstaller64.exe不在系统默认路径里,记得把命令里的文件名改成绝对路径,比如"C:\Tools\usbmmidd\deviceinstaller64.exe"。

方案2:用PowerShell检测虚拟显示器硬件

如果第一种方法的查询命令不好用,还可以通过检测系统中的显示器硬件来判断,适合虚拟显示器名称带有特定标识的情况(比如usbmmidd创建的通常叫“USB Display”):

修改你的批处理文件为:

@echo off
:: 调用PowerShell检查是否存在USB虚拟显示器
powershell -Command "$hasVirtualMonitor = Get-PnpDevice -Class Monitor | Where-Object { $_.FriendlyName -like '*USB Display*' }; if (-not $hasVirtualMonitor) { & 'deviceinstaller64.exe' enableidd 1 }"

同样,如果deviceinstaller64.exe路径不是全局的,要替换成完整路径。

这两个方案都能确保每次开机启动脚本运行时,只会在没有虚拟显示器的情况下创建一个,不会出现重复创建多个的问题。

备注:内容来源于stack exchange,提问作者FamousSnake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:09:39