RootsLabs

More than a tool ! GitHub Google+ LinkedIn RSS

Faire une capture d’écran d’une VM VirtualBox en ligne de commande

Progi1984 - Commentaires (0)

Il est utile quand on réalise un tutorial, quand on veut soulever un bogue, de faire une copie d’écran. Mais quand le système est dans une machine virtuelle sous Virtualbox, comment faire ?

L’outil principale pour contrôler VirtualBox en ligne de commande est VBoxManage.

VirtualBox : Linux

Sous Linux, la ligne de commande principale est :

# controlvm : subcommand
# <Nom de la VM> : VM à controler
# screenshotpng : prend une copie d'écran de la VM et le sauve au format PNG
$/usr/bin/vboxmanage controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>

De plus, j’ai créé un script qui, toutes les 100 secondes, fait un capture d’écran :

#!/bin/sh
count=1
while [ true ]
do
    /usr/bin/vboxmanage controlvm <Nom de la VM> screenshotpng ~/Screenshot_$count.png
    (( count++ ))
    sleep 100
done

VirtualBox : Windows

Sous Windows, la ligne de commande principale est :

# controlvm : subcommand
# <Nom de la VM> : VM à controler
# screenshotpng : prend une copie d'écran de la VM et le sauve au format PNG
"<Path VirtualBox>\VBoxManage.exe" controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>

De plus, j’ai créé un script qui, à chaque appui sur une touche ou toutes les 1000 secondes, fait une capture d’écran :

@echo off
FOR /L %%I IN (1, 1, 1000) DO (
	if !i! lss 1000 (
		if !i! lss 100 (
			if !i! lss 10 (
				"<Path VirtualBox>\VBoxManage.exe" controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>000%%I.png
			) else (
				"<Path VirtualBox>\VBoxManage.exe" controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>00%%I.png
			)
		) else (
			"<Path VirtualBox>\VBoxManage.exe" controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>0%%I.png
		)
	) else (
		"<Path VirtualBox>\VBoxManage.exe" controlvm <Nom de la VM> screenshotpng <Fichier Screenshot>%%I.png
	)
	TIMEOUT /T 1000
)

Liens :

Ajouter un commentaire

Commentaire :