VBS调用SAPI实现定时报时 新增Teams进程检测避免打断会议
VBS自动报时脚本修改指南
多会议软件检测修改实现
以下是支持同时检测Zoom和Teams进程的完整可运行代码,原有报时逻辑完全保留:
Dim hour_now, minute_now, speaks, speech hour_now = hour(time) minute_now = minute(time) If minute_now = 0 Then speaks = "Il est " & hour_now & " heures" Else speaks = "Il est " & hour_now & " heures " & minute_now & " minutes" End If Set speech = CreateObject("sapi.spvoice") Dim strComputer strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") ' 同时检测Zoom和Teams进程,任意一个运行就跳过报时 Set colProcessList = objWMIService.ExecQuery _ ("Select Name from Win32_Process WHERE Name LIKE 'zoom%' OR Name LIKE 'Teams%'") If colProcessList.count = 0 then speech.Speak speaks End if Set objWMIService = Nothing Set colProcessList = Nothing Set speech = Nothing
核心改动说明:
- 调整了WMI进程查询的条件,新增Teams进程匹配规则,只要Zoom或Teams任意一个进程处于运行状态,就不会触发语音报时,完全符合规避打断会议的需求
- 原有法语报时逻辑、定时任务适配规则全部保留,不需要修改任务计划等配套配置
报时功能快速开关方案
提供两个零额外开发成本的实现方案:
- 方案一:任务计划快捷开关
基于你已配置的任务计划定时触发规则,创建两个桌面快捷方式即可一键切换状态:- 启用报时的快捷方式目标填:
schtasks /change /tn "你创建的报时任务名称" /enable - 禁用报时的快捷方式目标填:
schtasks /change /tn "你创建的报时任务名称" /disable
两个快捷方式都右键选择「属性」→「高级」→勾选「用管理员身份运行」,点击即可秒级切换报时状态,无需打开任务计划面板操作。
- 启用报时的快捷方式目标填:
- 方案二:脚本内置开关
在脚本最顶部添加常量定义即可手动快速开关,不需要修改其他逻辑:' 放在脚本最开头,需要关闭时改成False即可 Const ENABLE_REPORT = True ' ... 原有中间代码不变 ... ' 播报逻辑修改为如下判断 If ENABLE_REPORT And colProcessList.count = 0 then speech.Speak speaks End if
内容的提问来源于stack exchange,提问作者daileyco
相关产品推荐
相关产品推荐

