Je suis nouveau dans le domaine des scripts VB. Je veux que le script VB agisse en fonction d'un événement d'une application. Ex : Le VBScript doit attendre qu'un message popup apparaisse dans une application.
Réponses
Trop de publicités?Le VBScript et le script de l'hôte Windows ne prennent en charge que l'automatisation primitive de l'interface graphique, comme l'activation de Windows (la touche AppActivate
) et l'envoi de frappes de touches (la méthode SendKeys
). Je doute donc que votre tâche puisse être accomplie avec du VBScript pur.
Cependant, il existe un outil gratuit d'automatisation des interfaces graphiques appelé AutoIt qui devrait pouvoir faire ce dont vous avez besoin.
Si tout ce que vous voulez est de fermer une fenêtre pop-up, cela peut vous aider :
Set oShell = CreateObject("WScript.Shell")
Do
bResult = oShell.AppActivate("Title of the dialog box")
If bResult = True Then
oShell.SendKeys "%N" ' Alt+N, you may send {Esc} or {Enter} if you want
Exit Do
End If
WScript.Sleep 500
Loop
Selon l'application, le modèle objet peut être utilisé pour automatiser la plupart des fonctions. J'ai l'habitude d'automatiser Excel en utilisant le modèle d'objet Excel. Voici un lien vers la documentation sur MSDN :
http://msdn.microsoft.com/en-us/library/aa209782%28office.10%29.aspx
J'ai l'habitude de désactiver les menus contextuels lorsque cela est possible pour éviter qu'ils ne provoquent des événements inattendus que le script doit gérer. Voici un exemple :
'Create an new instance of Excel to work with
Set objExcel = CreateObject("Excel.Application")
Set objBook = objExcel.Workbooks.Open("C:\Test.xls")
Set objSheet = objStartsBook.Sheets(1)
'Make Excel visible on the screen for the user
objExcel.Visible = True
'Turn off pop up dialog boxes from excel so the script can control the app
objExcel.DisplayAlerts = False
À partir de là, je continuerais à utiliser le modèle objet d'Excel pour que l'application effectue la tâche dont j'ai besoin.
L'astuce consiste à réfléchir aux membres et aux méthodes nécessaires pour accomplir la tâche que vous souhaitez, par rapport à la façon dont une personne interagit avec l'interface graphique.