要让软件每次启动都自动出现在第二台显示器,需先确认副屏编号为2且物理布局正确;再通过修改快捷方式添加-monitor 2参数、规范操作两次以上利用系统记忆功能,或用PowerShell脚本强制定位实现。

当你需要某个软件(比如记事本、Chrome 或 VS Code)每次启动都自动出现在第二台显示器上,而不是挤在主屏左上角,就得绕过系统默认行为,直接干预它的启动方式或窗口归属——这和拖动窗口、最大化再关闭无关,必须从启动参数、系统记忆机制或底层API入手。
确认副屏编号与物理布局
所有后续操作的前提是:系统准确识别并稳定编号副屏。打开“设置 → 系统 → 显示”,点击“标识”按钮,副屏上会短暂显示数字(如“2”);若无反应,说明编号未固定,需先检查线缆、信号源及显卡驱动状态。
在同一页面中,拖拽两个显示器缩略图,使其左右/上下排列顺序与你实际桌面物理摆放完全一致——鼠标从主屏右边缘移出后,必须精准进入副屏左边缘,否则窗口位置计算会错乱。
【副屏编号必须为2或更高,不能是1】。Windows 默认将最先识别的显示器设为1号主屏,后续识别的依次为2、3……若副屏被标为1,则主屏反成2,所有定向启动参数都将指向错误屏幕。
修改快捷方式目标添加-monitor 2参数
这是最稳定、重启后依然生效的方法,适用于绝大多数桌面应用程序(如 Chrome、Notepad++、Photoshop、VS Code 等),无需管理员权限,生效快。
第一步:在桌面或开始菜单中找到该软件的快捷方式(带小箭头图标),右键 → “属性”。
第二步:切换到“快捷方式”选项卡,在“目标”文本框末尾光标定位到最后一个引号内侧,紧贴引号前输入一个半角空格,然后粘贴:-monitor 2。
例如原目标为:"C:Program FilesNotepad++ otepad++.exe",修改后应为:"C:Program FilesNotepad++ otepad++.exe" -monitor 2。
点击“确定”保存。下次双击此快捷方式启动程序时,窗口将强制出现在编号为2的显示器上。注意:如果副屏编号不是2,请先执行“标识”操作确认实际编号——编号错会导致窗口根本不出现在任何屏幕上。
利用系统窗口记忆功能(规范操作两次以上)
这招对绝大多数 Win32 程序有效(如 Word、Excel、Edge、SnippingTool),依赖系统窗口位置记忆机制,但必须按正确顺序操作才生效。
① 先关闭所有该程序的运行实例(包括后台进程,可在任务管理器中结束)。
② 右键该软件快捷方式 → “以管理员身份运行”(仅首次设置时建议,避免权限导致记忆失败)。
③ 窗口出现后,立刻用鼠标将其完整拖入第二显示器区域 → 不要最大化 → 手动调整到你希望的大小和位置 → 然后直接关闭窗口(点右上角 ×,不要最小化)。
④ 重复步骤③两次,系统通常就能稳定记住第二显示器位置。第三次启动时,窗口应自动出现在第二屏对应位置。
【关闭前不能最大化,也不能最小化,必须是普通窗口状态关闭】,否则系统不会保存坐标。
用PowerShell脚本强制定位到第二显示器
方法一:适用于任何窗口,无需程序支持特定参数,靠系统 API 强制移动
新建一个记事本文件,粘贴以下代码,保存为 move-to-monitor2.ps1:
$proc = Start-Process "notepad.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.Rectangle $screen.WorkingArea.X, $screen.WorkingArea.Y, $screen.WorkingArea.Width, $screen.WorkingArea.Height; $win = [System.Runtime.InteropServices.Marshal]::GetActiveObject("Shell.Application"); $win = $null; Add-Type @" ...(省略 P/Invoke 定义)"@; [Win32]::SetWindowPos($hwnd, 0, $pos.X, $pos.Y, $pos.Width, $pos.Height, 0x0040) } }
右键该 .ps1 文件 → “使用 PowerShell 运行”,即可启动 notepad 并强制定位到第二显示器工作区。如需用于其他程序,只需将代码中 "notepad.exe" 替换为对应路径(如 "C:Program FilesGoogleChromeApplicationchrome.exe")。
这一步操作起来很简单,直接把文件拖进去就行。但首次运行需在 PowerShell 中执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 解除脚本限制。











