VirtualBox的COM API的完整Python接口实现
项目描述
VirtualBox的COM API的完整Python接口实现。
安装
前往VirtualBox的下载页面(https://www.virtualbox.org/wiki/Downloads)并下载VirtualBox SDK。在解压缩的ZIP文件中有一个名为“installer”的目录。在安装目录中打开控制台,并使用您的系统Python运行 python vboxapisetup.py install。这会安装 vboxapi,这是与VirtualBox通过COM通信的接口。
接下来是安装此库
要从PyPI获取virtualbox的最新发布版本,请运行以下命令
$ python -m pip install virtualbox
或从GitHub安装最新开发版本
$ git clone https://github.com/sethmlarson/virtualbox-python $ cd virtualbox-python $ python setup.py install
入门指南
列出可用机器
>>> import virtualbox >>> vbox = virtualbox.VirtualBox() >>> [m.name for m in vbox.machines] ["windows"]
启动机器
>>> session = virtualbox.Session() >>> machine = vbox.find_machine("windows") >>> # progress = machine.launch_vm_process(session, "gui", "") >>> # For virtualbox API 6_1 and above (VirtualBox 6.1.2+), use the following: >>> progress = machine.launch_vm_process(session, "gui", []) >>> progress.wait_for_completion()
查询机器
>>> session.state SessionState(2) # locked >>> machine.state MachineState(5) # running >>> height, width, _, _, _, _ = session.console.display.get_screen_resolution()
与机器交互
>>> session.console.keyboard.put_keys("Hello, world!") >>> guest_session = session.console.guest.create_session("Seth Larson", "password") >>> guest_session.directory_exists("C:\\Windows") True >>> proc, stdout, stderr = guest_session.execute("C:\\\\Windows\\System32\\cmd.exe", ["/C", "tasklist"]) >>> print(stdout) Image Name PID Session Name Session# Mem Usage ========================= ====== ================ ======== ============ System Idle Process 0 Console 0 28 K System 4 Console 0 236 K smss.exe 532 Console 0 432 K csrss.exe 596 Console 0 3,440 K winlogon.exe 620 Console 0 2,380 K services.exe 664 Console 0 3,780 K lsass.exe 676 Console 0 6,276 K VBoxService.exe 856 Console 0 3,972 K svchost.exe 900 Console 0 4,908 K svchost.exe 1016 Console 0 4,264 K svchost.exe 1144 Console 0 18,344 K svchost.exe 1268 Console 0 2,992 K svchost.exe 1372 Console 0 3,948 K spoolsv.exe 1468 Console 0 4,712 K svchost.exe 2000 Console 0 3,856 K wuauclt.exe 400 Console 0 7,176 K alg.exe 1092 Console 0 3,656 K wscntfy.exe 1532 Console 0 2,396 K explorer.exe 1728 Console 0 14,796 K wmiprvse.exe 1832 Console 0 7,096 K VBoxTray.exe 1940 Console 0 3,196 K ctfmon.exe 1948 Console 0 3,292 K cmd.exe 1284 Console 0 2,576 K tasklist.exe 124 Console 0 4,584 K
注册事件处理器
>>> def test(event): >>> print("scancode received: %r" % event.scancodes) >>> >>> session.console.keyboard.set_on_guest_keyboard(test) 140448201250560 scancode received: [35] scancode received: [23] scancode received: [163] scancode received: [151] scancode received: [57]
关闭机器
>>> session.console.power_down()
许可
Apache-2.0
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
pyvbox-2.1.1.tar.gz (284.1 kB 查看哈希)
构建分布
pyvbox-2.1.1-py2.py3-none-any.whl (275.0 kB 查看哈希)