2010-10-07 25 views
0

Existe-t-il un moyen d'intercepter un MsgBox() à partir d'une application externe et de le bloquer à l'aide de VB.Net? Pour cette discussion, supposons que le titre MsgBox soit "Application SQL" et que le message soit "Erreur SQL - Réessayez".Bloquer MsgBox à partir d'une application externe à l'aide de VB.Net

J'ai trouvé quelques exemples de recherche de MsgBox à afficher (en regardant pour le titre de la fenêtre) puis en envoyant la touche (s) pour appuyer sur OK, mais j'étais curieux de savoir si tout le processus pouvait être évité. Sinon, l'utilisateur voit toujours un MsgBox ou un "flash", même si ce n'est que temporaire.

Est-il possible d'éviter cela?

Répondre

0

Eh bien, vous pourriez quelque chose comme des détours (voir http://research.microsoft.com/en-us/projects/detours/), et d'écrire un détour pour messagebox que vous chargez dans votre processus, mais il y a plusieurs problèmes:

1), il est 32 bits uniquement, à moins que vous payez la version pro 2) l'effort de développement impliqué peut être non trivial, surtout si vous n'avez pas beaucoup d'expérience C/C++ interne. Je suppose que vous pourriez écrire un wrapper géré pour les détours, mais cela semble aussi impliqué. 3) Vous ne pouvez pas l'utiliser dans le commerce sans la version pro.

est-ce une application dont vous avez hérité?

+0

Non, c'est lié à un contrôle que j'ai placé sur un formulaire. Il a un MsgBox qui se déclenche dans certaines circonstances, mais j'ai besoin de le cacher. Il n'y a aucun événement pour le contrôle qui se déclenche donc je ne peux pas l'intercepter de cette façon. –

+0

Et pour ceux qui se demandent, non ... ce n'est pas un message de licence (nag screen) qui arrive que j'essaye de bloquer. Tout est légitime. –

+0

Non, ils ne peuvent pas. Merci, mais je préfère rester concentré sur la question. J'apprécie ta réponse. J'ai vérifié le détour. Je m'attendais à quelque chose d'un peu plus "intégré" à. Net. S'il n'y a pas d'autres réponses, j'accepte la vôtre. Techniquement, je fais ce que je demande. –