2011-07-18 6 views
2

J'ai créé un script VBA qui active le logiciel de base de données d'entreprise de mon entreprise et prend une capture d'écran des messages d'erreur pour les compiler et les envoyer à notre service informatique lorsqu'ils apparaissent.Aider AppActivate à trouver mon programme

Le problème est qu'il a environ 30 pour cent de chances de ne pas trouver le programme de base de données. J'utilise AppActivate et je le répète avec les différentes variantes du nom. (J'ai emprunté ce morceau de code d'ailleurs quand mon AppActivate manquait 60-70% du temps.)

"PROGname v2 - [titre du menu utilisateur est activé]" est le nom de la barre de menus du programme. Y a-t-il quelque chose que je puisse faire pour l'attraper à chaque fois?

Sub ActivateWin() 
'Activates The Program by window name 
    On Error Resume Next   'we ignore all errors until we reach last AppActivate 
    AppActivate ("PROG") 
    If Err.Number = 5 Then Err = 0: AppActivate ("PROGname v2") 
    If Err.Number = 5 Then Err = 0: AppActivate ("PRO") 
    If Err.Number = 5 Then Err = 0: AppActivate ("P") 
    If Err.Number = 5 Then Err = 0: AppActivate ("prog") 
    If Err.Number = 5 Then Err = 0: MsgBox "PROGname not found. Please go yell at MYNAME!" 
End Sub 

Répondre

0

Peut-être que vous pourriez essayer une autre façon avec la commande FindWindow (une autre information here). Afin de trouver quelle classe se réfèrent à votre programme, vous pouvez utiliser cet addin: http://www.xcelfiles.com/API_06.html ou vous inspirer du code et le personnaliser selon vos besoins.

Questions connexes