Page 1 sur 1
[..] Cacher fenêtre virtualbox (vm en fonction)
Posté : lun. 26 déc. 2011 22:03
par Vincent31
Bonjour à tous,
je démarre une machine virtuelle au démarrage de la machine hôte
Etant donné qu'au d"marrage de la machine virtuelle un script est lancé (script utilisant du moouseclick...)
je voudrais que l'execution de la VM se fasse de maiere invisible pour éviter d'interferer avec le mouseclick puisque j'utilise la machien hote pendant le script de la VM tourne
j'ai donc ceci :
Code : Tout sélectionner
#include <Process.au3>
_RunDos('start C:\Users\Vincent\Documents\Oracle\VirtualBox\VirtualBox.exe --comment '&'"1"'&' --startvm '&'"4405a5a8-645c-4e71-b93a-f26a7c73b5bb"')
Winsetstate("1 [En fonction] - Oracle VM VirtualBox","",@SW_HIDE)
problème : le @SW_Hide en fonctionne pas
je suis sous W7-64
auriez vous une idée svp ? merci
Re: [...] Cacher fenêtre
Posté : lun. 26 déc. 2011 23:12
par mikell
Code : Tout sélectionner
#include <Process.au3>
Opt("WinTitleMatchMode", 2)
_RunDos('start C:\Users\Vincent\Documents\Oracle\VirtualBox\VirtualBox.exe --comment '&'"1"'&' --startvm '&'"4405a5a8-645c-4e71-b93a-f26a7c73b5bb"')
WinWait ("VirtualBox")
Winsetstate("VirtualBox","",@SW_HIDE)
Tu peux pas lancer Virtualbox en invisible avec VBoxHeadless.exe ?
Re: [...] Cacher fenêtre
Posté : mar. 27 déc. 2011 10:57
par Vincent31
mikell a écrit :Tu peux pas lancer Virtualbox en invisible avec VBoxHeadless.exe ?
Je ne connaissait pas cette application, un petit tour dasn l'aide de virtualbox et effectivement avec :
Code : Tout sélectionner
_RunDos('start C:\Users\Vincent\Documents\Oracle\VirtualBox\[color=#BF0000][strike]VirtualBox.exe[/strike][/color][color=#008000]VBoxHeadless.exe[/color] --comment '&'"1"'&' --startvm '&'"4405a5a8-645c-4e71-b93a-f26a7c73b5bb"')
la vm est invisible et si j'ouvre l'interface elle est bien déclarée en fonction donc plus de risque avec moouseclick
un grand merci mikell
en revanche : j'ai une ConsoleWindowClass intitilée C:\Users\Vincent\VirtualBox\VBoxHeadless.exe qui apparaît (winsetstate @sw_hide en fonctionne pas) pour finir le travaille j'aimerais bien la cacher (si cette fenêtre est fermée par erreur la machine virtuelle est avortée...)
j'ai remarquer qu'en fait on ne pouvait pas utiliser @SW_HIDE sur une fenetre qui a été ouverte depuis cmd.exe en mode administrateur seulement
et je pense que _RunDos execute les commandes en admin
auriez vous une idée pour lancer l'execution en mode non admin (commande a saisir dans la console ...) afind e cacher la fenêtre
Re: [..] Cacher fenêtre virtualbox (vm en fonction)
Posté : mer. 28 déc. 2011 21:26
par mikell
Re: [..] Cacher fenêtre virtualbox (vm en fonction)
Posté : jeu. 29 déc. 2011 10:52
par TopXm
Salut,
J'ai eu fait ça mais j'ai abandonné car au moindre pépin de démarrage de la VM, message quelconque, on perd le contrôle du bouzingo et ça devient assez périlleux pour stopper le processus VboxHeadLess.exe. Bon après possible que mon bout de code ne soit pas au top ...
Sinon ça donnait quelque chose dans ce genre
► Afficher le texteVM silent
Code : Tout sélectionner
;
; test VB en mode silencieux
;
Local Const $VMname = '"VM Seven"' ; La VM à démarrer
Local Const $PathDir = @ProgramFilesDir & '\oracle\virtualbox\' ; Le chemin de VB
local const $PgName = 'vboxheadless.exe' ; l'EXE qu'on lance
Local const $Param = '--startvm ' & $VMname & ' --vrde off' ; Les paramètres
Local Const $ShowMode = @SW_HIDE ; Mode silencieux (perso je @SW_MINI ...)
Local $Ret = ShellExecute($PgName, $Param, $PathDir, Default, $ShowMode) ; On lance via le ShellExecute
if @error Then
ConsoleWrite('--------------------------' & @CRLF)
ConsoleWrite('Impossible de lancer la VM' & @CRLF)
ConsoleWrite('--------------------------' & @CRLF)
EndIf
Exit