确定 python 程序在 WINE 上是否为 运行

Determine if a python program is running on WINE

我可以检查 Linux/Windows/cygwin/etc。使用 sys.platform,但在 WINE 上它只报告 'win32'。

我正在尝试编写一个使用 pyserial 的多平台应用程序,并且我正在使用 WINE 来测试 Windows 环境的设置。在 Windows 上,串行端口被命名为 COMxx,但在 Linux 上,它们是 /dev/ttyxxx。但是,在 WINE 上,串行端口有 Linux 个名称。我需要检测它是否在 WINE 上与 Windows 分开,以便我可以正确处理它。

首先,这是未经测试的,尝试创建一个从 .wine/dosdevices/COM1 到 /dev/ttyS0 的符号链接。它应该只允许您以 Windows 方式打开 com 端口。

但是,如果您确定要知道自己是否 运行 在 Wine 上,"official" 方法是检查注册表是否有键 "HKEY_LOCAL_MACHINE\Software\Wine".

无论哪种方式,如果打开 COM1 在 Wine 上不起作用,这是一个错误,应该提交给 Wine bugzilla。