如何在特定应用程序运行时自动将Windows 10多显示器设置从“扩展这些显示”切换为“复制这些显示”?
如何在特定应用程序运行时自动将Windows 10多显示器设置从“扩展这些显示”切换为“复制这些显示”?
当然可以实现!你提到的AutoHotKey确实是个合适的工具,我给你详细说下操作步骤,非常好上手:
一、先安装AutoHotKey
先去装个AutoHotKey,安装过程一路点默认选项就行,没什么复杂的配置。
二、编写自动切换脚本
AutoHotKey可以帮我们定时监测目标程序的运行状态,再调用Windows自带工具切换显示模式。直接给你现成的脚本,改个参数就能用:
; 替换成你要监测的程序进程名(比如记事本是notepad.exe,去任务管理器「详细信息」里找) TargetProcess := "notepad.exe" ; 记录当前显示模式,避免重复切换浪费系统资源 currentMode := "extend" Loop { ; 检查目标程序是否在运行 Process, Exist, %TargetProcess% if (ErrorLevel) { ; 程序正在运行,切换到复制模式 if (currentMode != "clone") { Run, displayswitch.exe /clone currentMode := "clone" ToolTip, 已切换到复制显示模式~ SetTimer, ToolTip, -1500 ; 1.5秒后自动关闭提示框 } } else { ; 程序未运行,切回扩展模式 if (currentMode != "extend") { Run, displayswitch.exe /extend currentMode := "extend" ToolTip, 已切回扩展显示模式~ SetTimer, ToolTip, -1500 } } Sleep, 5000 ; 每5秒检查一次,嫌频繁可以改成10000(10秒) } ; 按Esc键可以退出后台运行的脚本 Esc::ExitApp
脚本关键细节说明:
- TargetProcess:把示例里的
notepad.exe换成你需要监测的程序进程名,比如用Photoshop就改成photoshop.exe,进程名在任务管理器的「详细信息」标签里能找到。 - 检查间隔:
Sleep, 5000是设置每5秒检查一次程序状态,你可以根据需求调整数值,单位是毫秒(比如3000就是3秒)。 - 提示框:
ToolTip相关的代码是给你弹个小提示,告诉你模式已经切换,不需要的话直接删掉这几行就行。
三、使用脚本的步骤
- 打开记事本,把上面的代码粘贴进去,修改好
TargetProcess的内容。 - 保存文件时,后缀名要改成
.ahk,比如存成DisplayAutoSwitch.ahk(注意别存成.txt格式)。 - 双击这个
.ahk文件,它就会在后台悄悄运行,自动帮你监测程序并切换显示模式。 - 如果想让脚本开机自动运行,就把这个脚本的快捷方式放到「启动」文件夹:按Win+R输入
shell:startup,打开文件夹后把快捷方式粘贴进去即可。
一些注意事项
displayswitch.exe是Windows自带的工具,系统默认就能找到它,不用额外配置路径。- 有些程序(比如Chrome)会有多个进程,这个脚本只要监测到任意一个进程就会触发切换,普通场景下完全够用;如果需要精确监测主进程,可能需要更复杂的判断,但一般情况下这个脚本就足够了。
- 切换显示模式时屏幕会闪一下,这是Windows的正常反应,不用担心。
备注:内容来源于stack exchange,提问作者user9564371
相关产品推荐
相关产品推荐

