如何更改 Amazon EC2 Windows 机器的分辨率?

如何更改 Amazon EC2 Windows 机器的分辨率?

(我在是否应该把这篇文章发布在这里、ServerFault 和 StackOverFlow 上之间犹豫了很久。最后决定发布在这里。希望发布在正确的地方。)

我们使用 Selenium Grid 2 在 Amazon EC2 Windows 机器(使用 Amazon 的 CloudFormation API 启动)上运行我们的 UI 测试套件。我的问题是,如何更改该机器的分辨率?

如果我远程访问它,我可以使用远程桌面指定分辨率。但显然这不会永久改变分辨率。当我们运行测试时,分辨率太小,浏览器会将元素挤压在一起并导致测试失败。

有什么想法吗?我可以在 CloudFormation 配方中添加一些东西吗?在创建 AMI 之前我可以对图像做些什么吗?

设备管理器的屏幕截图

谢谢。

答案1

免责声明:TightVNC 并不安全,因此如果安全是一个问题,您可能需要寻找其他方法。整个过程只需几分钟,因此安全漏洞很小,但仍然存在。

  1. 在 EC2 实例上安装 TightVNC 服务器,以便您可以登录控制台
  2. 断开所有用户远程桌面会话并将会话返回到控制台
  3. 使用 TightVNC Viewer 登录 EC2 实例控制台,确保端口 5900 已打开以进行该连接
    • 右键单击桌面并选择“屏幕分辨率”
    • 选择“高级设置”
    • 选择“列出所有模式”
    • 选择更高的分辨率

答案2

您可以通过修改两个注册表值来更改屏幕分辨率。这两个值是: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution其中 GUID 是随机生成的 GUID。

实际上您可以指定任何 XResolution 和 YResolution 值,只要它们是十六进制的。

注意:如果使用 CRT 显示器,指定不合理的分辨率可能会损坏您的显示器。如果使用 LCD 显示器,您的显示器可能不再显示任何用户界面。更改屏幕分辨率的一个好方法是写下您想要填充屏幕宽度的像素数量(这是 XResolution)和您想要填充屏幕高度的像素数量(YResolution)。Windows 计算器(在 Server Core 中不可用,您必须找到另一台计算机或硬件高级计算器)提供了一种将十进制数转换为十六进制数的简单方法。然后,您可以使用这些值来修改相应的注册表值。重新启动将使您的首选屏幕分辨率符合现实。

您的显示器上使用的颜色深度在以下注册表值中捕获: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel在我的盒子上,这个十六进制值设置为 0x00000008 (8),这意味着我的屏幕使用 8 位颜色深度。(256 色)将其更改为 16 位 (0x00000010) 将显示 65536 种颜色(高色彩)通常可用的其他值是 24 位 (0x00000018) 和 32 位 (0x00000020)。

来源

答案3

我尝试了上述所有方法,但都失败了。我找到了一个适合我的情况的解决方案,很简单……使用 Windows Power Shell。

编写 power-shell 脚本

Set-DisplayResolution -Width 1920 -Height 1080 -Force

将其命名为resolution.ps1

保存在 C:\myTestFolder

并从下面的命令行运行它.....(我的脚本由批处理文件驱动)

WindowsPowerShell\v1.0\powershell.exe C:\myTestFolder\resolution.ps1

答案4

以下是我使用 RDP 在 AWS Windows 上设置无头屏幕分辨率的方法:

  • 创建一个名为 rdp_local 的新用户
  • 创建启动脚本以 RDP 到指定的用户帐户(例如 selenium)
  • 添加防火墙规则以打开 RDP 端口 3389
  • 配置自动登录以在重启时以 rdp_local 身份登录

请注意,自动登录需要用户名和密码,并且密码以未加密的形式存储在 Windows 注册表 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下。

在 Amazon Windows Server 2012 R2 AMI 上测试。

下面是一个可以完成上述操作的 Chef 食谱:https://github.com/dhoer/chef-windows_screenresolution

相关内容