3 votes

Automatiser une application à l'aide de VBScript

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.

3voto

Helen Points 13822

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.

2voto

Arcadie Points 66

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

0voto

Raedwald Points 131

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.

0voto

lakshman Points 1
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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X