使用Pythonic接口的VirtualBox COM API的完整实现
项目描述
使用Pythonic接口的VirtualBox COM API的完整实现。
安装
访问VirtualBox下载页面(https://www.virtualbox.org/wiki/Downloads)并下载VirtualBox SDK。在解压的ZIP文件中有一个名为“installer”的目录。在安装目录中打开控制台,使用您的系统Python运行 python vboxapisetup.py install。这会安装 vboxapi,这是通过COM与VirtualBox通信的接口。
接下来是安装这个库
要从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
项目详情
下载文件
下载适用于您平台的应用程序文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
virtualbox-2.1.1.tar.gz (284.4 kB 查看哈希值)
构建分发
virtualbox-2.1.1-py2.py3-none-any.whl (275.3 kB 查看哈希值)
关闭
virtualbox-2.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2950f181ce06d249dd35aec364753318377c2f2c9e9d9382d7fcbc4ccce4e0f6 |
|
MD5 | cf0ad29269f16c40c7011621ab682912 |
|
BLAKE2b-256 | 83ba9253ee4b2a08d2868d163afbf8085cf70807368abbe630cbb133a1b25a02 |
关闭
virtualbox-2.1.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 158a7e278b0a88bf3a9405131d79f569f2465270428914734573080d79b51dfc |
|
MD5 | e28057ff3cc048c37ab320609bedd05c |
|
BLAKE2b-256 | cdeabb32234710d4ad61782a30dc28c45baaa0e769ffe6a6162662b36545a1e5 |