![我可以从客户虚拟机访问主机 win32 API 吗?](https://linux22.com/image/1620740/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BB%8E%E5%AE%A2%E6%88%B7%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%AE%BF%E9%97%AE%E4%B8%BB%E6%9C%BA%20win32%20API%20%E5%90%97%EF%BC%9F.png)
问题 使用虚拟机内部的 win32 API 从主机操作系统上运行的 Windows 应用程序中提取信息。 细节 我需要在客户端机器上运行后台作业,并且希望编写的脚本可以在不同的 Windows 版本上运行。目前我没有时间/资源在不同的 Windows 版本上测试我的脚本(python)。因此,我决定在客户端机器上安装虚拟机并在虚拟机内运行我的脚本。
我现在的问题是,我的 python 脚本在虚拟机内运行时是否可以访问主机操作系统的窗口?
答案1
不,您无法直接访问主机 Windows 操作系统。
根据所使用的虚拟化系统,您可以访问主机的某些资源,例如:
- 可用的网络驱动器/TCP/UDP 端口(需要客户机和主机之间至少有仅主机网络)
- 主机上的某些文件和文件夹(需要配置“共享文件夹”功能并在客户操作系统上安装 VirtualBox 客户工具)
- 某些 USB 设备(配置要传递到客户操作系统的 USB 设备)
我认为你使用 VM 的方法并不可取。通常 Python 脚本对所用的 Windows 版本不太敏感。版本之间唯一可能发生变化的部分是某些用户或程序文件的位置。但由于目前实际上只剩下两个 Windows 版本(Windows 8 和 Windows 10 以及相应的服务器版本),因此测试工作是可控的。