2008-08-21 10 views
0

Lorsque vous utilisez Office Interop en C#, si vous insérez un objet de graphique dans un document MS Word, l'application Grap se charge très brièvement, puis disparaît. Y a-t-il un moyen d'empêcher cela? J'ai essayé de définir la propriété Visible de l'instance de l'application à false sans effet.Comment arrêter l'apparition du composant MS-Graph pendant Interop?

EDIT: La propriété Visible prend effet lorsqu'elle est utilisée contre Word lors de l'interception et n'apparaît pas. Je m'attendrais à ce qu'il y ait une manière semblable de faire ceci pour MS Graph.

Répondre

1

Ceci est un comportement courant pour beaucoup de composants hébergés dans un exécutable binaire. L'application hôte va démarrer, puis faire le travail. Je ne sais pas s'il existe un moyen infaillible d'empêcher cela puisque vous n'avez aucun contrôle sur le composant ni sur le processus tant que l'application n'est pas démarrée et qu'elle ne répond pas.

Un hack que j'ai essayé dans le passé (pour quelque chose de totalement différent) commençait un processus et détectait constamment si ses fenêtres principales étaient créées. Dès qu'il a été créé, je le cachais. Vous pouvez le faire avec le module principal de l'application défectueuse et espérer qu'il sera assez rapide pour cacher la fenêtre avant que l'utilisateur ne s'en aperçoive. Ensuite, vous instanciez votre composant; le composant habituellement recycle un processus existant, en espérant celui avec la fenêtre principale cachée.

Je ne peux pas vous garantir que cela fonctionnera dans votre situation, mais ça vaut le coup d'essayer le problème est si important, ou si vous ne trouvez pas une meilleure façon bien sûr.

Questions connexes