Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PowerShell] Script Message Box réapparait

Sujet résolu
    15 avril 2022 à 9:04:24

    Bonjour,

    J'ai essayé de coder un bout de script en PowerShell. Le fonctionnement que j'aimerais faire est le suivant : on commence par afficher une boite de dialogue avec un message. Ensuite, on lance le programme Step7. On fait une petite pause le temps que le programme se lance. Puis on rentre dans une boucle qui va vérifier si le processus Step7 est actif. S'il est actif, on va afficher une seule fois le message, toutes les X secondes (tant que l'utilisateur n'a pas cliqué sur OK !). Si jamais on ferme Step7 (et donc que le processus n'existe plus), on stop la boucle et donc le script.

    Sur mon poste Windows 10, cela fonctionne parfaitement. Aucun autre message n'apparaît tant que je ne clique pas sur Ok ! Le but pour le moment est de le mettre sur un poste Windows 7. J'ai donc laissé tourner le script toute la nuit, et quand j'ai de nouveau regardé le matin, il y avait 5 boites de dialogue Windows. J'ai fait un nouveau test ce matin et c'est 5 boites de dialogue qui apparaissent au lieu d'une seule. Donc est ce que c'est mon script qui pose des soucis et qui n'est pas correct ? Où est-ce que ça vient du Windows 7 ?

    Désolé pour les éventuelles fautes d'orthographe, j'espère avoir assez bien décrit ce que je souhaitais faire.


    PowerShell.exe -windowstyle hidden {
    Add-Type -AssemblyName Microsoft.VisualBasic
    [Microsoft.VisualBasic.Interaction]::MsgBox("Assurez-vous que le chemin du projet ouvert est sur le lecteur réseau :`r`r  '[Nom du projet] \\MTNLEM00GF602\Version_STEP7\Ligne_SA' `r`r Le chemin du projet se trouve en haut de la fenêtre STEP7","OKOnly,SystemModal,Exclamation", "Attention !")
    
    Start-Process S7tgtopx
    
    Sleep 2700
    
    Do {
    
    If (([bool](Get-Process -Name S7tgtopx -ErrorAction SilentlyContinue)) -eq $false) {
        break
    } else {
    
    Add-Type -AssemblyName Microsoft.VisualBasic
    [Microsoft.VisualBasic.Interaction]::MsgBox("Assurez-vous que le chemin du projet ouvert est sur le lecteur réseau :`r`r  '[Nom du projet] \\MTNLEM00GF602\Version_STEP7\Ligne_SA' `r`r Le chemin du projet se trouve en haut de la fenêtre STEP7","OKOnly,SystemModal,Exclamation", "Attention !")
    Sleep 2700
    }
    
    } While (Get-Process -Name S7tgtopx -ErrorAction SilentlyContinue)
    }

    -
    Edité par Squaar 15 avril 2022 à 9:20:10

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2022 à 0:00:08

      Bonsoir,

      La MsgBox semble mettre le script en standby/attente donc si tu avais plusieurs boites de dialogue, c'est que tu devais avoir plusieurs instances de powershell de lancé non ? (sans doute en fenêtre caché mais visible dans le gestionnaire des taches).

      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2022 à 14:40:54

        Merci pour la réponse. Du coup, en voulant vérifier aujourd'hui, j'ai refais le test. Il s'avère que j'ai bien un seul message maintenant. Tout fonctionne comme je le voudrais. J'ai vérifié dans le gestionnaire de tâches et il y a bien un seul processus de lancé. Donc c'est tout bon :D

        Merci quand même pour l'aide ;)

        • Partager sur Facebook
        • Partager sur Twitter

        [PowerShell] Script Message Box réapparait

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown