This project has been archived by its maintainers, and is no longer receiving any updates.
virtualbox-python
Complete implementation of VirtualBox’s COM API with a Pythonic interface.
Installation
Go to VirtualBox’s downloads page (https://www.virtualbox.org/wiki/Downloads) and download the VirtualBox SDK. Within the extracted ZIP file there is a directory called “installer”. Open a console within the installer directory and run python vboxapisetup.py install using your system Python. This installs vboxapi which is the interface that talks to VirtualBox via COM.
Next is to install this library:
To get the latest released version of virtualbox from PyPI run the following:
$ python -m pip install virtualbox
or to install the latest development version from GitHub:
$ git clone https://github.com/sethmlarson/virtualbox-python $ cd virtualbox-python $ python setup.py install
Getting Started
Listing Available Machines
>>> import virtualbox >>> vbox = virtualbox.VirtualBox() >>> [m.name for m in vbox.machines] ["windows"]
Launching a Machine
>>> 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()
Querying the Machine
>>> session.state SessionState(2) # locked >>> machine.state MachineState(5) # running >>> height, width, _, _, _, _ = session.console.display.get_screen_resolution()
Interacting with the Machine
>>> 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
Registering Event Handlers
>>> 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]
Powering-Down a Machine
>>> session.console.power_down()
License
Apache-2.0
Metadata
Release files for pyvbox 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyvbox-2.1.1.tar.gz | 284.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyvbox-2.1.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 559.1 kB
Release files / pyvbox-2.1.1.tar.gz
| Download URL | pyvbox-2.1.1.tar.gz |
|---|---|
| Size | 284.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a28ae1bb98f9619d29c47de80891c7a161a05e0ab0f29b7afef9e708b1e896c3
|
|
BLAKE2b-256 checksum How to use checksums |
1be1e0792503598563216729d875fc3787676486cedb2a4ee1573fca1234525e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
|
Release files / pyvbox-2.1.1-py2.py3-none-any.whl
| Download URL | pyvbox-2.1.1-py2.py3-none-any.whl |
|---|---|
| Size | 275.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
0ca05d091af17ecfd7a6042e52c3b29efe0307aa954c1290ea5ea38e67b27e1f
|
|
BLAKE2b-256 checksum How to use checksums |
2d2f620fd56b4286c8c1caad961e905d9d28bcaadf1a694ab4ae91341ee87529
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
|
Security for pyvbox 2.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.