老游戏窗口偏移需三步修复:先在兼容性设置中勾选“替代高 DPI 缩放行为”并选“应用程序”;再用 Win+方向键强制居中;最后用 dxwrapper 启用 ForceWindowed=1 和 DisableWindowPosSaving=1,或添加 -windowed -noborder 参数启动。

确认老游戏是否被系统强制缩放
右键点击游戏的主程序(如 game.exe)→ 选择“属性” → 切换到“兼容性”选项卡 → 点击“更改高 DPI 设置”按钮。
勾选“替代高 DPI 缩放行为”,并在下方下拉菜单中选择“应用程序”。【这一步必须做,否则 Windows 11 会强行用系统级缩放渲染老游戏,导致窗口被钉死在左上角且无法拖动】
点击“确定”保存,再点一次“应用”使设置生效。
强制窗口居中并解除坐标锁定
第一步:确保游戏处于运行状态但窗口不可见(任务栏图标亮着即可)。
第二步:按 Alt + Tab 切换到该游戏窗口,使其成为当前激活窗口。
第三步:按下 Win + ← 或 Win + → 将窗口“吸附”到屏幕左侧或右侧,再立刻按 Win + ↑,强制触发 Windows 的窗口最大化逻辑——此时哪怕窗口原本在屏幕外,也会被拉回可视区域并居中显示。
如果第一次没成功,重复操作 2~3 次。部分老游戏在首次拉回后仍会自动跳回角落,需配合下一步使用 dxwrapper 锁定位置。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
用 dxwrapper 阻断错误坐标写入
方法一:启用窗口化模式防偏移
下载 dxwrapper 最新版(gitcode.com/gh_mirrors/dx/dxwrapper),解压后将 dxwrapper.dll 和 dxwrapper.ini 放入游戏目录。打开 ini 文件,找到 [General] 区块,在下方添加:
ForceWindowed=1
DisableWindowPosSaving=1
【DisableWindowPosSaving=1 是关键,它禁止游戏下次启动时读取上次崩溃前存下的错误屏幕坐标】
方法二:直接覆盖启动参数(适用于无配置文件的老游戏)
右键游戏快捷方式 → 属性 → 在“目标”栏末尾添加空格后追加:-windowed -noborder(注意前面有空格)。这样每次双击都以无边框窗口模式启动,彻底避开全屏坐标错位问题。










