![Windows Server 2012 默认桌面大小](https://linux22.com/image/690056/Windows%20Server%202012%20%E9%BB%98%E8%AE%A4%E6%A1%8C%E9%9D%A2%E5%A4%A7%E5%B0%8F.png)
我正在使用在 Azure 虚拟机上运行的 Windows Server 2012 r2 数据中心版本,遇到了一个奇怪的行为,希望有人可以帮助我理解。
简单来说,当我使用自动登录确保重新启动后特定用户的桌面存在,桌面大小似乎始终为 1024x768 - 我尝试使用多种途径(包括代码)来更改此设置,但无论我以何种方式更改分辨率,方法/api 调用/powershell cmdlet 似乎总是成功,但在后续查询中它又回到了 1024x768。我首先认为这是 Windows 在没有显示驱动程序时强加的一些默认设置,但在编写一个枚举支持的显示模式的应用程序后,它返回了更多支持的分辨率。更奇怪的是,如果我使用远程桌面工具并将分辨率设置为 1920x1080 之类的值,则桌面会调整大小,即使在远程会话完成后,对桌面大小的查询现在也会返回新的分辨率 1920x1080... 直到 VM 重新启动。
我花了一段时间研究这种现象但无济于事——手动更改注册表中 1024 和 768 的每个实例也没有任何效果。
有谁知道我该如何改变默认当没有显示设备时,用户的桌面大小是多少,这个 1024x768 的“神奇”分辨率从何而来?
编辑:感谢到目前为止的回答,虽然我很感激他们,但我已经非常确定这个问题无法通过简单的注册黑客或启动工具来解决(主要是因为我已经尝试过了) - 我很确定问题在于有显示驱动程序(Hyper-V Video),但没有显示设备
谢谢
答案1
您可以在服务器上的 cmd 中运行 regedit.exe 并搜索该注册表项。
要更改分辨率,您需要在 \Video 下查找正确的显示 GUID,然后修改分辨率值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\" & sDisplayGUID & "\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\" & sDisplayGUID & "\0000\DefaultSettings.YResolution
希望这对你有帮助。
答案2
由于您已经在使用 AutoLogon,有一个名为“resswitch”的旧程序会在登录时改变分辨率。
http://www.codeproject.com/KB/tips/resswitch.aspx
它很古老,我不记得自从 XP 时代以来就用过它。有一个名为“displaychanger”的替代品(http://12noon.com/?page_id=80) 对于教育来说是免费的,但对于其他方面则不然。