副屏全屏启动需先确认副屏编号为2或更高并校准物理布局,再修改快捷方式目标参数添加“-screen-fullscreen1 -monitor 2”;顽固程序可用powershell脚本调用setwindowpos强制定位。

你想让某个程序(比如 Chrome、记事本或监控看板)每次启动都直接在副显示器上以全屏窗口形式打开,而不是先弹在主屏左上角再手动拖、再点最大化——这需要同时锁定显示器编号和强制全屏状态,单靠拖动或设“最大化”运行方式无法达成目标。
确认副屏编号与物理布局
所有后续操作生效的前提是系统已稳定识别副屏且编号准确。打开“设置 → 系统 → 显示”,点击“标识”按钮,副屏上必须清晰显示数字“2”(或更高);若显示“1”,说明它被系统误判为主屏,需检查线缆连接顺序、显卡驱动是否最新,并重启电脑重新识别。【副屏编号必须为2或更高,不能是1】。接着在同一页面中,用鼠标拖拽两个显示器缩略图,使其左右/上下排列顺序与你真实桌面摆放完全一致——例如外接显示器实际在笔记本右侧,则缩略图也必须右置,否则窗口坐标计算会错乱,导致位置偏移甚至不可见。
修改快捷方式目标参数强制副屏全屏
这是最直接、重启后仍生效的方法,适用于 Chrome、Edge、Notepad++、VS Code 等绝大多数桌面程序(.exe 文件),无需第三方工具或脚本。
第一步:在桌面或开始菜单中找到该软件的快捷方式(带小箭头图标),右键 → “属性”。
第二步:切换到“快捷方式”选项卡,在“目标”文本框中,将光标定位到最后一个英文引号【内部】,紧贴引号前输入一个半角空格,然后粘贴:-screen-fullscreen1 -monitor 2。
例如原内容为:"C:\Program Files\Notepad++\notepad++.exe",修改后应为:"C:\Program Files\Notepad++\notepad++.exe" -screen-fullscreen1 -monitor 2。注意引号必须保留,空格不可省略,【-monitor 后的数字必须与你副屏实际编号完全一致】。
第三步:点击“确定”保存。下次双击此快捷方式启动,程序将直接在副屏以全屏窗口模式打开。
顽固程序用 PowerShell 脚本强制定位
某些不支持 -screen-fullscreen1 或 -monitor 参数的程序(如老旧 Java 客户端、定制 ERP、部分 UWP 封装应用),需借助系统级窗口操作绕过其自身逻辑。
方法一:新建一个文本文件,重命名为 LaunchOnMonitor2.ps1,用记事本打开,粘贴以下内容:
$proc = Start-Process "C:\Program Files\YourApp\app.exe" -PassThru; Start-Sleep -Milliseconds 300; $hwnd = $proc.MainWindowHandle; if ($hwnd -ne 0) { Add-Type @" using System; using System.Runtime.InteropServices; public class WinAPI { [DllImport("user32.dll")] public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); } "@; [WinAPI]::SetWindowPos($hwnd, 0, 1920, 0, 1920, 1080, 0x40); }
⚠️ 注意:请将 "C:\Program Files\YourApp\app.exe" 替换为你实际程序的完整路径;1920 和 0 是副屏左上角 X/Y 坐标(假设主屏宽 1920),需根据你副屏分辨率和相对位置调整;脚本首次运行会提示执行策略限制,需以管理员身份打开 PowerShell,执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。
方法二:右键该 .ps1 文件 → “使用 PowerShell 运行”,验证效果;确认无误后,可为其创建桌面快捷方式,目标设为:powershell.exe -ExecutionPolicy Bypass -File "D:\path\LaunchOnMonitor2.ps1"。











