New ActiveXObject ( « Word.Application ») crée un nouveau processus de winword.exe lorsque la sécurité IE ne permet pas l'objet à créer

StackOverflow https://stackoverflow.com/questions/2427523

Question

Nous utilisons MS Word comme un correcteur orthographique pour quelques champs sur un site Web de l'entreprise privée, et lorsque les paramètres de sécurité d'IE sont corrects, il fonctionne bien. (Zone pour le site mis à confiance, et la zone de confiance modifiée pour permettre le contrôle de fonctionner sans demander.)

Le script que nous utilisons crée un objet mot et se ferme ensuite. Bien que l'objet existe, un processus winword.exe court, mais il est détruit lorsque l'objet Word est fermé.

Si notre site est pas défini dans la zone de confiance (zone Internet avec le niveau de sécurité par défaut) l'appel qui crée l'objet Word échoue comme prévu, mais le processus winword.exe est encore créé. Je n'ai aucune façon d'interagir avec ce processus dans le script, de sorte que le processus reste autour jusqu'à ce que l'utilisateur se déconnecte (les utilisateurs ont aucun moyen de détruire le processus manuellement, et ce ne serait pas une bonne solution, même si elles ont fait. )

L'appel qui tente de créer l'objet est ...

try {
      wordApplication = new ActiveXObject('Word.Application');
} catch(error) {
      // irrelevant code removed, described in comments..
      // notify user spell check cannot be used
      // disable spell check option
}

Ainsi, chaque fois que la page est chargé ce code peut être exécuté à nouveau, ce qui crée un autre orphelin winword.exe processus.

wordApplication est, bien sûr, non défini dans le bloc catch.

Je voudrais être en mesure de détecter les paramètres de sécurité du navigateur à l'avance, mais je l'ai fait quelques recherches sur ce sujet et ne pense pas qu'il est possible.

La direction est content ici comme il est. Tant que la sécurité IE est correctement réglée il fonctionne, et il fonctionne bien pour nos besoins. (On peut éventuellement envisager d'autres options pour la fonctionnalité de vérification orthographique, mais cela a été rapide, bon marché, et fait tout ce qu'il faut qu'il fasse.)

Ce dernier bugs problème moi et je voudrais faire quelque chose à ce sujet, mais je suis d'idées et j'ai d'autres choses qui sont plus dans le besoin de mon attention.

Avant que je mets de côté, je pensais que je demande des suggestions ici.

Était-ce utile?

La solution

Je n'ai pas trouvé une réponse à ce problème, et je suis troublé par ce que le problème de la sécurité implique Internet Explorer (j'oublié de mentionner dans mon précédent post la version que je me sers. IE 7)

Cependant, je ne mettre en œuvre une solution de contournement que je ne suis pas satisfait, mais je me sens néanmoins plus à l'aise avec que sans vérification du tout ...

Le code tente maintenant d'ouvrir d'abord un autre objet, et si cela échoue, le code suppose que Word ne soit ouvert et émet une erreur. A partir de ce point, pas plus d'appels à nouveau ActiveXObject () sera faite et toute tentative de vérification orthographique entraînera une erreur.

try { 
    oMSInfo = new ActiveXObject('Msinfo32.MSInfo.1');
} catch (error) {
    //  error handling code not shown...
    return;
}

Cet objet ne démarre pas un nouveau processus lorsque l'appel à nouveau ActiveXObject () échoue. Il ne dispose pas d'un notable effet sur les ressources du système.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top