可通过三种方法实现软件启动时自动显示在副屏:一是修改快捷方式目标添加命令行参数(如--window-position=1920,0);二是利用windows窗口位置记忆功能,按规范顺序操作两次以上;三是用powershell脚本调用api强制定位。

你想让某个软件每次启动都自动出现在副屏而不是主屏,避免手动拖动、最大化后再关掉的麻烦操作,这个需求在双屏或多屏办公场景中非常常见。
通过快捷方式属性添加启动参数
方法一:适用于支持命令行参数的程序(如 Chrome、Edge、VS Code、Trae、SnippingTool 等)
第一步:在桌面或文件夹中找到该软件的快捷方式(不是原始 .exe,是带小箭头图标的那个)→ 右键 → 选择“属性”。
第二步:在“目标”文本框末尾光标定位到最后一个引号前,【务必保留原有引号结构】,然后追加空格 + -monitor 2 或 --screen=2(不同程序参数名不同,需查证)。例如 Chrome 可用 --window-position=1920,0(假设副屏左上角坐标为 1920,0)。
第三步:点击“确定”保存。下次双击该快捷方式,窗口将直接在副屏指定位置打开。
注意:若程序不识别 -monitor 2,会忽略该参数且无报错;建议先查官方文档或社区确认支持的显示器定位参数。
利用 Windows 自身记忆功能(无需改参数)
这招对绝大多数 Win32 程序有效,依赖系统窗口位置记忆机制,但必须按正确顺序操作才生效。
① 先关闭所有该程序的运行实例(包括后台进程,可在任务管理器中结束)。
② 右键该软件快捷方式 → “以管理员身份运行”(仅首次设置时建议,避免权限导致记忆失败)。
③ 窗口出现后,立刻用鼠标将其完整拖入副屏区域 → 不要最大化 → 手动调整到你希望的大小和位置 → 然后直接关闭窗口(点右上角 ×,不要最小化)。
④ 重复步骤③两次,系统通常就能稳定记住副屏位置。第三次启动时,窗口应自动出现在副屏对应位置。
关键点:【关闭前不能最大化,也不能最小化,必须是普通窗口状态关闭】,否则系统不会保存坐标。
用 PowerShell 脚本强制定位(进阶可控方案)
方法一:适用于任何窗口,无需程序支持特定参数,靠系统 API 强制移动
新建一个记事本文件,粘贴以下代码,保存为 move-to-monitor2.ps1:
$proc = Start-Process "notepad.exe" -PassThru; Start-Sleep -Milliseconds 300; $hwnd = $proc.MainWindowHandle; if ($hwnd -ne 0) { $mon = Get-CimInstance -ClassName Win32_VideoController | Where-Object {$_.Name -match "Monitor.*2" -or $_.PNPDeviceID -match "DISPLAY\#.*2"}; if ($mon) { Add-Type @" ...(省略 P/Invoke 声明)... "@; [WinAPI]::MoveWindow($hwnd, 1920, 0, 1024, 768, $true) } }
右键该 .ps1 文件 → “使用 PowerShell 运行”,Notepad 将强制出现在副屏(1920,0)位置。
方法二:封装成批处理+快捷方式(更易日常使用)
新建 launch-on-mon2.bat,内容为:powershell -ExecutionPolicy Bypass -File "%~dp0move-to-monitor2.ps1" → 把它和 .ps1 放同一目录 → 双击 .bat 即可。
这一步做完后,软件就会按设定只在特定屏幕打开了。











