New ActiveXObject ( ‚Word.Application‘) schafft neuen winword.exe Prozess, wenn IE Sicherheit nicht Objekt erlaubt geschaffen werden

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

Frage

Wir sind mit MS Word als Rechtschreibprüfung für ein paar Felder auf einer privaten Website des Unternehmens, und wenn IE-Sicherheitseinstellungen korrekt sind es funktioniert gut. (Zone für die Site auf vertrauenswürdige und vertrauenswürdige Zone modifizierte Steuerung zu ermöglichen, ohne Nachfrage ausgeführt werden.)

Das Skript verwenden wir erzeugt ein Wortobjekt und schließt es danach. Während das Objekt vorhanden ist, ein winword.exe Prozess läuft, aber es zerstört wird, wenn das Word-Objekt geschlossen ist.

Wenn Sie unsere Website wird in der vertrauenswürdigen Zone (Zone Internet mit Standardsicherheitsstufe) den Anruf nicht festgelegt, dass das Word-Objekt erstellt ausfällt als erwartet, aber der winword.exe Prozess wird noch erstellt. Ich habe keine Möglichkeit, mit diesem Prozess in dem Skript zu interagieren, so dass der Prozess bleibt herum, bis sich der Benutzer abmeldet (Benutzer keine Möglichkeit haben, manuell den Prozess zu zerstören, und es wäre keine gute Lösung sein, auch wenn sie es taten. )

Der Aufruf, der das Objekt zu erstellen versucht, ist ...

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
}

Also jedes Mal, wenn die Seite diesen Code geladen wird, kann erneut ausgeführt werden, noch eine weitere Waise winword.exe Prozess.

wordApplication ist, natürlich nicht definiert im catch-Block.

Ich möchte in der Lage sein, die Sicherheitseinstellungen des Browsers im Voraus zu erkennen, aber ich habe einige Benutzer über das getan und denke nicht, dass es möglich ist.

Management hier ist zufrieden damit, wie es ist. Solange IE Sicherheit richtig eingestellt ist es funktioniert, und es funktioniert gut für unsere Zwecke. (Wir können für die Rechtschreibprüfung Funktionalität auf andere Optionen aussehen schließlich, aber das war schnell, kostengünstig und tut alles, was wir es tun müssen, um.)

Das letzte Problem nervt mich, und ich möchte, etwas dagegen zu tun, aber ich bin aus Ideen und ich habe andere Dinge, die mehr benötigen, meine Aufmerksamkeit sind.

Bevor ich es beiseite gelegt, dachte ich, dass ich hier für Anregungen bitten würde.

War es hilfreich?

Lösung

Ich habe keine Antwort auf dieses Problem gefunden, und ich bin gestört, was das Problem bedeutet, um die Sicherheit von Internet Explorer (ich habe vergessen, in meiner vorherigen Post die Version zu erwähnen Ich verwende. IE 7)

Allerdings habe ich eine Abhilfe implementieren, die ich nicht glücklich bin, aber trotzdem fühlen sich wohler mit als ohne Kontrolle auf allen ...

Der Code versucht nun zuerst ein anderes Objekt zu öffnen, und wenn, dass der Code nicht davon ausgeht, dass Word wird entweder nicht öffnen und gibt einen Fehler aus. Von diesem Punkt an, keine Anrufe mehr auf neue ActiveXObject () wird bei der Rechtschreibprüfung in einem Fehler resultieren gemacht und jeden Versuch werden.

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

Dieses Objekt nicht startet einen neuen Prozess, wenn der Anruf zu neuen ActiveXObject () fehlschlägt. Es ist auch nicht ein noticable auf Systemressourcen auswirken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top