2008-09-12 5 views
2

Je travaille sur les mises à niveau d'une application de capture d'écran. Nous utilisons un contrôle ActiveX pour extraire les écrans d'un ordinateur central IBM. Le programme mainframe bloque et bloque souvent le contrôle ActiveX provoquant le blocage de notre application. Nous n'avons pas accès au mainframe ni au code source ActiveX. Nous n'allons pas écrire notre propre contrôle x actif.Détection de l'application bloqué avec des contrôles ActiveX dans .Net

Quel est le moyen le plus bast pour encapsuler un contrôle ActiveX pour détecter l'application bloque avec le contrôle afin que nous puissions tuer le processus et redémarrer avec du code?

Dois-je créer 2 applications distinctes? Un en tant que contrôleur qui vérifie l'autre et tue/redémarre le processus quand il se bloque? Auraient-ils besoin d'être sur des domaines d'application distincts? Est-il possible que deux programmes communiquent entre eux même s'ils se trouvent sur des domaines d'application distincts?

+0

Pedantry: * application – GEOCHET

Répondre

1

Vous pouvez démarrer un fichier exécutable avec System.Diagnostics.Process.Start(). Cela renvoie un objet Process avec une propriété Responding que vous pouvez utiliser pour vérifier périodiquement si le processus est toujours actif.

Vous aurez besoin de deux applications distinctes pour cela. Et l'application que vous surveillez doit avoir une fenêtre principale car la surveillance fonctionne en vérifiant si l'application traite toujours les messages de la file d'attente de messages de la fenêtre principale. C'est de la même manière que Windows sait ajouter "Ne répond pas" à un titre de fenêtre

+0

Des suggestions pour faire en sorte que les deux applications se parlent? Je vais probablement utiliser une base de données. Y a-t-il un moyen plus facile? – ctrlShiftBryan

+0

Vous pouvez faire en sorte que les applications publient des éléments dans les boucles de messages de l'autre. Cependant, il existe probablement de meilleurs moyens de communication entre processus. Essayez de chercher SO pour IPC .. – Mendelt

Questions connexes