本文最后更新于 2024-02-12,文章内容可能已经过时。

工具准备:NirCmd

官网与命令说明:NirCmd - Windows command line tool (nirsoft.net)

NirCmd 是一个免费的命令行小工具,可以在不使用 UI 的条件下进行一些 Windows 系统控制,如读写注册表、重启系统、创建快捷方式、更改显示设置、关闭显示器等等等等,感兴趣的具体可以看官网介绍。

结合任务计划程序,就可以完成不少自动化功能,可以说是 Windows 系统下的简易 Tasker 了。

任务计划程序

任务栏搜索:任务计划。

右侧点击:创建任务。

起个名字。

切换到触发器选项卡,新建-发生事件时

选择自定义单选框,单击新建时间筛选器。

筛选器选项卡下,选择事件级别:信息——这里实际是利用 Windows 事件日志来触发自动化,感兴趣的可以在任务栏搜索事件查看器试试,也可以利用其他事件触发自动化。

事件日志下拉菜单依次选择:应用程序和服务日志 - Microsoft - Windows - WLAN - AutoConfig/Operational

事件来源选择 WLAN - AutoConfig

<所有事件-ID> 改为 8001

任务类别选择 AcmConnection

如果就在这里打住的话,那么连接任何 WiFi 都会触发后面的任务,因此还需要根据 SSID 做更改。

切换到 XML 选项卡,再对应查看 Windows 事件查看器,左侧选择 应用程序和服务日志 - Microsoft - Windows - WLAN - AutoConfig/Operational,找到右侧 8001 对应的日志。 通过对比可以看出,刚才的选项对应了日志 XML 文件记录的条目信息,因此只要将 SSID 条目添加进去,就可以在连接指定 WiFi 时再触发对应任务了。

点选手动编辑查询,只要在 </Select>前添加and *[EventData[Data[@Name='SSID']='你的WiFi ssid']] 即可,最终 XML 如下:

<QueryList>
 <Query Id="0" Path="Microsoft-Windows-WLAN-AutoConfig/Operational">
   <Select Path="Microsoft-Windows-WLAN-AutoConfig/Operational">*[System[Provider[@Name='Microsoft-Windows-WLAN-AutoConfig'] and Task = 24010 and (EventID=8001)]]and *[EventData[Data[@Name='SSID']='你的WiFi ssid']] </Select>
 </Query>
</QueryList>

成果演示

最后,确定保存,返回到操作选项卡,新建,选择启动程序,浏览到 NirCmd 存放位置,添加参数填入 mutesysvolume 1,确定保存,输入密码,大功告成。 

利用同样的方法,你也可以选择连接家庭 WiFi 或断开公司 WiFi 时,自动恢复音量等等,举一反三,这里就不详细说明啦。