要让软件每次启动都自动出现在副显示器上,必须通过修改快捷方式目标路径添加“-monitor 2”参数(副屏编号须为2或更高),或用PowerShell脚本强制移动窗口,或在副屏内关闭程序以触发系统位置记忆。

你想让某个软件每次启动都自动出现在副显示器上,而不是默认挤在主屏左上角,就得绕过系统默认行为直接干预程序启动参数——这和调整窗口大小或拖动位置无关,必须从.exe文件的启动命令入手。
确认副屏编号与物理布局
先确保系统准确识别并稳定编号副屏,否则后续所有设置都会失效。打开“设置 → 系统 → 显示”,点击“标识”按钮,副屏上会短暂显示数字(如“2”);若无反应,说明编号未固定,需先检查线缆、信号源及显卡驱动状态。
在同一页面中,拖拽两个显示器缩略图,使其左右/上下排列顺序与你实际桌面物理摆放完全一致——鼠标从主屏右边缘移出后,必须精准进入副屏左边缘,否则窗口位置计算会错乱。
【副屏编号必须为2或更高,不能是1】。Windows默认将最先识别的显示器设为1号主屏,后续识别的依次为2、3……若副屏被标为1,则主屏反成2,所有定向启动参数都将指向错误屏幕。
修改快捷方式目标路径添加启动参数
这是最稳定、重启后依然生效的方法,适用于绝大多数桌面应用程序(如Chrome、Notepad++、Photoshop等)。
第一步:在桌面或开始菜单中找到该软件的快捷方式,右键 → 属性。
第二步:切换到“快捷方式”选项卡,在“目标”文本框末尾光标定位到最后一个引号内侧,紧贴引号前输入空格,然后粘贴:【-monitor 2】(注意:前面必须有且仅有一个半角空格,数字2必须与副屏实际编号一致)。
例如原目标为:"C:Program FilesNotepad++ otepad++.exe",修改后应为:"C:Program FilesNotepad++ otepad++.exe" -monitor 2。
点击“确定”保存。下次双击此快捷方式启动程序时,窗口将强制出现在编号为2的显示器上。
用PowerShell脚本强制移动窗口到副屏
适用于不接受命令行参数的程序(如某些Java应用、旧版ERP客户端),或你想保留原始启动方式(比如从开始菜单点击),又要求100%落地到副屏。
方法一:新建记事本文件,输入以下内容:
$proc = Start-Process "C:PathToYourApp.exe" -PassThru
Start-Sleep -Milliseconds 300
$hwnd = $proc.MainWindowHandle
If ($hwnd -ne 0) {
$screen = [System.Windows.Forms.Screen]::AllScreens | Where-Object {$_.DeviceName -eq "\.DISPLAY2"}
if ($screen) {
$pos = New-Object System.Drawing.Point($screen.Bounds.X, $screen.Bounds.Y)
[System.Windows.Forms.NativeMethods]::SetWindowPos($hwnd, 0, $pos.X, $pos.Y, 0, 0, 0x40)
}
}
将其中 C:PathToYourApp.exe 替换为实际程序路径,\.DISPLAY2 中的数字2替换为副屏实际设备名(可在 PowerShell 中运行 [System.Windows.Forms.Screen]::AllScreens | ForEach-Object {$_.DeviceName} 查看)。
保存为 move-to-monitor2.ps1,右键该文件 → “使用 PowerShell 运行”,即可立即执行并把窗口移到副屏。
手动拖拽+记住位置(系统级行为)
对不支持命令行参数的老旧软件或UWP应用(如邮件、天气),只能靠系统记忆窗口位置。
① 先关闭所有该程序的运行实例(包括后台进程,可在任务管理器中结束)。
② 用常规方式打开该软件一次,将其窗口完整拖入副显示器可视区域并调整至期望大小(不要最大化)。
③ 在副显示器上关闭该软件——【必须在第二屏内关闭,不能拖回主屏再关】,Windows会记录最后关闭时的位置和屏幕归属。
④ 下次直接双击图标或从开始菜单启动,多数Win32程序(如Word、Excel、Edge)会复用上次关闭时的屏幕位置。

















