Python更改屏幕分辨率虚拟机

时间:2009-08-28 21:44:14

标签: python winapi virtualization resolution pywin32

在virtualbox中,屏幕分辨率可以是任何东西 - 甚至像993x451等奇怪的东西。我尝试使用pywin32更改它但我失败了::

>>> dm = win32api.EnumDisplaySettings(None, 0)
>>> dm.PelsHeight = 451
>>> dm.PelsWidth = 950
>>> win32api.ChangeDisplaySettings(dm, 0)
-2L

最终成为:

DISP_CHANGE_BADMODE

任何帮助?

3 个答案:

答案 0 :(得分:1)

您是否已将虚拟机配置为实际将此模式通告给操作系统?

编辑:如果更改窗口大小,VirtualBox会自动设置新的分辨率。您可以从我认为的主机操作系统设置视频模式提示(在文档中查找),但您需要安装guest虚拟机添加。您还可以在使用后备VESA驱动程序时添加VESA模式。无论哪种方式,似乎所有这些都需要从主机操作系统发生,以便客户操作系统能够使用它。并且它看起来不像是一个简单的(非cmdline可能不是持久的)配置它的方式,虽然是YMMV。

我没有测试过,但命令应该是: VBoxManage controlvm

您还可以设置最大来宾操作系统屏幕大小,在深入研究时找到它: VBoxManage setextradata全局GUI / MaxGuestResolution xres,yres

HTH

答案 1 :(得分:0)

您是否将VirtualBox设置为自动设置客户端窗口?这可能会导致一些问题。

答案 2 :(得分:0)

我发现这样做的方法是启用来自客户操作系统的自动客户端大小调整。然后,在主机OS中,以编程方式调整VM窗口的大小。这将导致分辨率发生变化。