[R] Section de IniWrite dynamique

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [R] Section de IniWrite dynamique

#21

Message par GaRydelaMer »

Coucou

j'ai modifier mon code précédant pour intégrer l'exécution. J'ai nommé User_Execute() la fonction que ta appelé Sart_Vm().

Code : Tout sélectionner

Func User_Execute()
    Local $aSelected = _GUICtrlListView_GetSelectedIndices($hWnd_ListView, True)
    If $aSelected[0] > 0 Then
        Local $iItem = $aSelected[1]
        Local $User = _GUICtrlListView_GetItemText($hWnd_ListView, $iItem, 1)
        Local $VM = _GUICtrlListView_GetItemText($hWnd_ListView, $iItem, 2)
        Local $Etat = _GUICtrlListView_GetItemText($hWnd_ListView, $iItem, 3)
        Local $Path = _GUICtrlListView_GetItemText($hWnd_ListView, $iItem, 4)
        ;Run("vboxmanage.exe starvm '" & $VM "'")
        ConsoleWrite("RUN (" & $iItem & "): vm=" & $VM & " nom=" & $User & " Etat=" & $Etat & " Path=" & $Path & @LF)
        Local $Retour_Commande = "OK"
        Switch $Retour_Commande
            Case "OK"
                _GUICtrlListView_SetItemText($hWnd_ListView, $iItem, "Terminer", 3)
            Case "Cancel"
                _GUICtrlListView_SetItemText($hWnd_ListView, $iItem, "Annuler", 3)
            Case Else
                _GUICtrlListView_SetItemText($hWnd_ListView, $iItem, "En Cours", 3)
        EndSwitch
        GUI_UserView()
    EndIf
EndFunc   ;==>User_Execute
Quelques détail car la c& fait rien:
Le retour de la commande modifie le statu dans la liste bien sur il va valoir le récupérer, j'ai pas VirtualBox donc je sais pas comment tu vas avoir le retour.
Mais tu peux lire le retour de la commande Run().

Donc cette partie c a toi de la coder. Petits tuyaux quand même.
Voir l'aide de StdoutRead

Code : Tout sélectionner

Local $PID = Run("vboxmanage.exe starvm '" & $VM "'")
Local $Retour_Commande = ""
While 1
    $Retour_Commande &= StdoutRead($PID)
    If @error Then ExitLoop
Wend
 
à la place de Local $Retour_Commande = "OK"
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [R] Section de IniWrite dynamique

#22

Message par GaRydelaMer »

Autre idée aussi.

Lors du lancement de la VBox, tu récupère le PID un identifiant unique du processus.

Il peux être souhaitable de terminer (arrêter la machine virtuelle), le mieux c'est d'ajouter un colonne dans la liste view et d'y mettre le PID dedans pour l'arrêter ensuite avec le contexte menu et vider la valeur.

Tu peux aussi interdire la modification des champs tant qu'une machine est en en cours.
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [R] Section de IniWrite dynamique

#23

Message par Laddy »

Bonjour GaRydelaMer
je n'avais pas tout à fait saisie ce que tu voulais faire mais je pense avoir compris.
Modifier le status dans la combox en fonction de son fonctionnement.

Dans mon cas, le status n'indique pas le fonctionnement de la VM, c'est juste une indicateur pour savoir quel utilisateur utilise telle ou telle VM.

Peut être devrais je renommer les status ainsi :
Ouverte -> En cours
Fermer ->Terminer

Code : Tout sélectionner

;fonction accessible par un double clic.
Func Start_Vm()
    Local $aSections, $iItem, $aUser
    Local $aSelected = _GUICtrlListView_GetSelectedIndices($hWnd_ListView, True)
    If $aSelected[0] > 0 Then
        Local $iItem
        $iItem = $aSelected[1]
        Local $Run_VM = _GUICtrlListView_GetItemText($hWnd_ListView, $iItem, 2)
    EndIf
    Run('"' & $PathVirtualBox & 'VBoxManage.exe" startvm ' & $Run_VM, $PathVirtualBox, @SW_HIDE)
    ;ConsoleWrite('"' & $PathVirtualBox & 'VBoxManage.exe" startvm ' & $Run_VM)
EndFunc   ;==>Start_Vm
 
[+] Ajout fonction Start_VM() pour démarrer la VM par un double-clic
[+] Couleurs dans GUI_UserView()
[M] Modification des status

Maintenant je cherche à avoir la couleur dans la listview.
► Afficher le texteCode entier
Répondre