Python改变虚拟机屏幕分辨率

发布于 2024-08-03 20:17:29 字数 360 浏览 5 评论 0原文

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

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

最终是:

DISP_CHANGE_BADMODE

有帮助吗?

In virtualbox, the screen resolution can be anything - even something strange like 993x451, etc. I tried changing it using pywin32 but I failed::

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

which ends up being:

DISP_CHANGE_BADMODE

any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

把时间冻结 2024-08-10 20:17:29

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

编辑:如果您更改窗口的大小,VirtualBox 会自动设置新的分辨率。我相信您可以从主机操作系统设置视频模式提示(在文档中查找),但您需要安装来宾附加功能。您还可以在使用后备 VESA 驱动程序时添加 VESA 模式。无论哪种方式,似乎这一切都需要从主机操作系统发生,以便来宾操作系统能够利用它。尽管 YMMV 看起来并没有一种简单的(非命令行可能不是持久的)方法来配置它。

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

您还可以设置最大来宾操作系统屏幕尺寸,在深入研究时发现了这一点:
VBoxManage setextradata 全局 GUI/MaxGuestResolution xres,yres

HTH

Have you configured the virtual machine to actually advertise this mode to the OS?

edit: VirtualBox automatically sets new resolutions if you change the size of the window. You can set video mode hints from the host OS I believe (look for it in the documentation), but you need guest additions installed. You can also add VESA modes when using the fallback VESA driver. Either way, it seems this all needs to happen from the host OS for the guest OS to be able to make use of it. And it doesn't look like there's an easy (non cmdline possibly not persistent) way to configure it, though YMMV.

I haven't tested it but the command should be:
VBoxManage controlvm

You can also set the maximum guest OS screen size, found this while looking into it a bit deeper:
VBoxManage setextradata global GUI/MaxGuestResolution xres,yres

HTH

Oo萌小芽oO 2024-08-10 20:17:29

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

Do you have VirtualBox set to automatically set the client window? that could cause some issues.

薯片软お妹 2024-08-10 20:17:29

我发现执行此操作的方法是从来宾操作系统启用自动客户端调整大小。然后,在主机操作系统中,以编程方式调整虚拟机窗口的大小。这将导致分辨率改变。

The way I found to do this is to enable the automatic client resizing from the Guest OS. Then, in the host OS, programatically resize the VM window. This will cause the resolution to change.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文