Section courante

A propos

Section administrative du site

Comment programmer VirtualBox

Il existe plusieurs bibliothèques et cadre d'application pour programmer VirtualBox dans différents langages de programmation. Ces outils permettent d'interagir avec l'API de VirtualBox, simplifiant ainsi la création de scripts ou d'applications pour gérer des machines virtuelles.

Voici quelques bibliothèques populaire en fonction des langages de programmation :

Langage/Technologie Bibliothèque/Cadre d'application
C Libvirt
C++ VBox SDK
Java Libvirt, VBox SDK
Node.js node-virtualbox
Perl Libvirt
Python Libvirt, PyVBox, VBox SDK
Ruby Libvirt, Vagrant

Free Pascal

Programmer VirtualBox avec Free Pascal peut se faire en interagissant avec l'API de VirtualBox, étant accessible via COM (Component Object Model) sur Windows, ou via SOAP sur d'autres systèmes d'exploitation. Voici une approche générale pour interfacer Free Pascal avec l'API de VirtualBox. Voici les étapes pour interfacer VirtualBox avec Free Pascal :

Exemple de programme simple en Free Pascal (Windows + COM)

Voici un exemple simple qui affiche la version de VirtualBox installée :

  1. Program VirtualBoxExample;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. Uses
  6.  SysUtils,ComObj,ActiveX;
  7.  
  8. Var
  9.  VBox,Session,Manager:OleVariant;
  10.  Version:WideString;
  11.  
  12. BEGIN
  13.  Try
  14.    { Initialisation de COM }
  15.   CoInitialize(NIL);
  16.    { Création de l'objet VirtualBox }
  17.   VBox := CreateOleObject('VirtualBox.VirtualBox');
  18.    { Récupération de la version }
  19.   Version:=VBox.Version;
  20.   WriteLn('Version VirtualBox : ', Version);
  21.    { Autres opérations avec VBox peuvent être ajoutées ici }
  22.  Finally
  23.    { Libération de COM }
  24.   CoUninitialize;
  25.  End;
  26. END.

Explications du code

Utilisation de l'API SOAP sur d'autres systèmes

Sur Linux ou macOS, vous pouvez utiliser l'API SOAP de VirtualBox. Cela nécessite l'utilisation d'une bibliothèque SOAP compatible avec Free Pascal, telle que Synapse ou fphttpclient. Le processus est plus complexe, car il implique la gestion des requêtes HTTP/SOAP pour communiquer avec VirtualBox.

Python

Exemple de base en Python utilisant l'API COM de Windows :

  1. import win32com.client
  2.  
  3. vbox = win32com.client.Dispatch("VirtualBox.VirtualBox")
  4. version = vbox.Version
  5. print(f"VirtualBox Version: {version}")
  6.  
  7. # Liste de toutes les machines virtuelles
  8. for machine in vbox.Machines:
  9.     print(f"VM Name: {machine.Name}")


Dernière mise à jour : Samedi, le 19 décembre 2020