2010-02-14 3 views
3

Je cherche un moyen de détecter et de fermer une boîte de message système ouverte avec VBScript.VBScript pour détecter une boîte aux lettres ouverte et la fermer

En utilisant le script suivant, je peux apporter le message au premier plan et fermer:

set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActive "System Settings Change" 
WshShell.SendKeys "%N" 

La question: je besoin d'un moyen de détecter si un messagebox attend l'interaction utilisateur à l'aide VBsciprt donc je ne peux Ferme le.

Thnak vous.

Répondre

2

Le script ci-dessous fera exactement ce que j'ai demandé.

' Will loop forever checking for the message every half a second 
' until it finds the message then it will send Alt-N and quit. 

Set wshShell = CreateObject("WScript.Shell") 

Do 
    ret = wshShell.AppActivate("System Settings Change") 
    If ret = True Then 
     wshShell.SendKeys "%N" 
     Exit Do 
    End If 
    WScript.Sleep 500 
Loop 
0

Puisque vous avez le code pour activer et fermer la boîte de message, je devine que tout ce que vous faites peut ou non provoquer l'apparition d'une boîte de message et vous avez besoin d'un moyen de l'effacer si c'est le cas.

Une méthode consiste à lancer un deuxième script qui contient juste une boucle qui surveille la boîte de message et la ferme quand elle le trouve. Vous pouvez le coder sur timeout après un certain temps qui permettra au script principal de se terminer.

Questions connexes