Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PowerShell] MsgBox avec choix Oui et Non + timer

Sujet résolu
    13 mai 2022 à 11:05:27

    Bonjour,

    Voilà, je souhaiterais faire une message box avec les boutons Oui et Non. Si on clique sur "OUI", le PC redémarre après 10 secondes. Si on clique sur "NON", le script s'arrête. Donc jusqu'ici, j'ai réussi, ce n'était pas trop compliqué. Le soucis maintenant, c'est qu'il faudrait une troisième option, qui permette de redémarrer le PC si personne ne clique sur "OUI" ou "NON" après 10 minutes. Mais je n'arrive pas à faire ce que je veux.

    J'ai vu sur différent forum/page internet, qu'il fallait utiliser une pop-up plutôt que la msgbox.

    Je vous met le bout de script ci-dessous.

    Add-Type -AssemblyName Microsoft.VisualBasic
    $Result = [Microsoft.VisualBasic.Interaction]::MsgBox("MobileAccessTask ne fonctionne plus et Windows va devoir redémarrer. Assurez vous d'enregistrez votre travail`ret de fermer toutes les applications ouvertes. `r`r Cliquez sur 'OUI' pour redémarrer maintenant. `r`r Cliquez sur 'NON' pour annuler le redémarrage.","YesNo,ApplicationModal,Exclamation", "Attention !")
    
    If($Result -eq "Yes") {
    [Microsoft.VisualBasic.Interaction]::MsgBox("Windows va redémarrer dans 10 secondes.","OKOnly,Exclamation", "Attention !")
    Start-Sleep -Seconds 10
    #RestartComp
    }
    If($Result -eq "No") {
    break
    }

    Merci d'avance ;)

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2022 à 15:01:19

      10 secondes ou 10 minutes ? (ça change rien à la problématique ceci-dit :lol: )

      bah il faut ajouter un Timer à ta fenêtre.
      tu as testé les exemples que tu as trouvé sur les forums ? (comme par exemple la 1ère réponse de celui-ci https://stackoverflow.com/questions/38851482/how-to-get-a-timer-in-a-powershell-messagebox ; il y manque peut-être un timer.stop() à la fin)

      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2022 à 16:09:36

        Bon bah du coup j'ai regardé ce que tu m'avais mis. J'ai testé mais ça ne correspondais pas exactement à ce que je voulais faire. Et en cherchant bien, j'ai finalement réussi à trouver quelque chose de pas trop mal et je l'ai arrangé à ma sauce.

        Au final, ça marque super bien :D . Je met le bout de script du coup juste en dessous. Merci quand même umfred pour m'avoir fait chercher, ça m'a aidé :p

        Nb : Les "Write-host" sont juste la pour faire des test et vérifier que tout fonctionne bien.

        # Temps d'attente du script, si aucun choix n'est fait par l'utilisateur.
        $Attente = 30
        
        # Message affcihé et titre de la fenêtre popup
        $Message = "֎ MobileAccessTask ne fonctionne plus et Windows va devoir redémarrer. Assurez vous d'enregistrez votre travail et de fermer `rtoutes les applications ouvertes. `r`r ► Cliquez sur 'OUI' pour redémarrer maintenant `r`r ► Cliquez sur 'NON' pour annuler le redémarrage"
        $Titre = "  ATTENTION !"
        
        $Prompt = New-Object -ComObject WScript.Shell
        
        $AffichageMessage = $Prompt.popup($Message,$Attente,$Titre,1)
        If($AffichageMessage -eq 1) {Write-Host "OK"}
        If($AffichageMessage -eq 2) {Write-Host "NON"}
        If($AffichageMessage -eq -1) {Write-Host "Pas de réponse"} 



        • Partager sur Facebook
        • Partager sur Twitter

        [PowerShell] MsgBox avec choix Oui et Non + timer

        × 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