Programmgesteuertes Konfigurieren der Sicherheitscenter-Einstellungen von MS-Word mit C #

8

Ich habe eine einfache C # Winforms-Anwendung entwickelt, die MS-Word 2007-Dokumente über COM-Automatisierung lädt.

Das ist alles sehr einfach und direkt, aber abhängig vom Dokument muss ich Makros sowie ActiveX-Steuerelemente programmatisch aktivieren oder deaktivieren.

Es gibt wahrscheinlich eine Möglichkeit, dies in der Registrierung zu speichern, aber ich möchte diese Einstellungen Instanz für Instanz steuern, da mehrere gleichzeitige Anfragen gleichzeitig ausgeführt werden können.

Meine Frage lautet also: Wie konfiguriere ich die Trust-Center-Einstellungen mithilfe der COM-Automatisierung ?

Ich habe stundenlang gegooglet, aber alles, was ich finden konnte, ist die Application.AutomationSecurity-Eigenschaft, aber das akzeptiert nur die folgenden Werte:

  • MsoAutomationSecurity.msoAutomationSecurityLow
  • MsoAutomationSecurity.msoAutomationSecurityForceDisable
  • MsoAutomationSecurity.msoAutomationSecurityByUI

Das Word 2007-Vertrauensstellungscenter stellt jedoch die folgenden Einstellungen bereit:

Makroeinstellungen:

  • Deaktivieren Sie alle Makros ohne Benachrichtigung (entspricht msoAutomationSecurityForceDisable)
  • Deaktivieren Sie alle Makros mit Benachrichtigungen (ich brauche dieses nicht)
  • Deaktivieren Sie alle Makros außer digital signierten Makros (kein Äquivalent)
  • Aktiviere alle Makros (stimmt mit msoAutomationSecurityLow überein)

alt text http://www.visguy.com/wp -content / uploads / 2007/05 / v2007-security-settings.png

ActiveX-Steuerelemente (separat konfiguriert, habe ich keine Möglichkeit gefunden, diese zu steuern, beachten Sie, dass nach dem Screenshot diese Einstellungen zwischen allen Anwendungen geteilt werden)

  • Deaktivieren Sie alle Steuerelemente ohne Benachrichtigung
  • Prompt mich vor dem Aktivieren von UFI-Steuerelementen ....
  • Lassen Sie mich vor der Aktivierung aller Steuerelemente mit minimalen Begrenzungen auffordern
  • Aktivieren Sie alle Steuerelemente ohne Einschränkungen

Ich habe den alten Trick der Aufnahme eines MS-Word-Makros ausprobiert, während ich diese Einstellungen ändere, aber keiner dieser Schritte wird aufgezeichnet.

Aktualisierung: Ich habe die folgenden Einträge für die Einstellungen der ActiveX-Steuerelemente in der Registrierung gefunden. Sieht aus wie ActiveX-Einstellungen sind tatsächlich global und können nicht für eine einzelne MS-Word-Instanz angegeben werden, es sei denn jemand beweist mich falsch.

ActiveX deaktiviert

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000001 "UFIControls" = dword: 00000002

ActiveX aktiviert mit abgesichertem Modus

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000000 "UFIControls" = dword: 00000002

ActiveX aktiviert ohne abgesicherten Modus

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000000 "UFIControls" = dword: 00000001

Ich bin immer noch daran interessiert, das Problem mit den Makroeinstellungen zu lösen

    
Jeroen Ritmeijer 21.10.2009, 12:32
quelle

4 Antworten

7

Sieht so aus, als würde ich meine eigene Frage beantworten.

Ich habe es getestet und kann bestätigen, dass die Zuordnungen wie folgt sind:

Makroeinstellungen:

  • msoAutomationSecurityForceDisable = Deaktiviere alle Makros ohne Benachrichtigung

  • msoAutomationSecurityByUI = Alle Makros außer digital deaktivieren signierte Makros

  • msoAutomationSecurityLow = Aktiviere alle Makros

Soweit ich weiß, können die globalen ActiveX-Einstellungen nur durch direktes Bearbeiten der Registrierung konfiguriert werden.

ActiveX deaktiviert

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000001 "UFIControls" = dword: 00000002

ActiveX aktiviert mit abgesichertem Modus

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000000 "UFIControls" = dword: 00000002

ActiveX aktiviert ohne abgesicherten Modus

[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Sicherheit] "DisableAllActiveX" = dword: 00000000 "UFIControls" = dword: 00000001

Ich habe einen Kommentar im relevanten Bereich der MSDN-Website

hinterlassen     
Jeroen Ritmeijer 21.10.2009, 14:58
quelle
2

Ich weiß, dass dieser Thread ziemlich alt ist, aber ich musste es heute herausfinden, also fand ich nach einer kurzen Recherche diese Registry für die Trust Center-Einstellungen :

Dies gilt für Word Version 2010 (und wahrscheinlich 2007, aber mit 12.0 statt 14.0)

Oder im Text:

Registrierungsspeicherort:

HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Word \ Sicherheit

Makroeinstellungen:

Name : VBA-Warnungen

Daten :

Deaktivieren Sie alle Makros ohne Benachrichtigung - 4

Deaktivieren Sie alle Makros mit Benachrichtigung - 2

Deaktivieren Sie alle Makros außer digital signierten Makros - 3

Aktiviere alle Makros (...) - 1

Entwicklermakroeinstellungen:

Name : ZugriffVBOM

Daten :

Deaktiviert - 0

Geprüft - 1

    
etaiso 04.02.2014 16:13
quelle
0

Für die Einstellung für ActiveX-Steuerelemente in Office 2010

zu DisbaleActiveX ohne den abgesicherten Modus brauchen Sie nur ...

%Vor%     
AltF4_ 22.02.2014 22:24
quelle
0

Ich habe ein paar Tage damit verbracht, das Gleiche zu versuchen und habe schließlich eine sehr einfache Möglichkeit gefunden, eine .xls-Datei mit Makros zu öffnen, ohne die Registry-Einstellungen oder die Trust-Einstellungen von Excel zu stören. In C #:

%Vor%

Siehe MSDN für Details.

Meine Excel-Trustcenter-Einstellungen wurden alle auf Standardwerte gesetzt - "Alle Makros mit Warnungen deaktivieren" und "Vertrauen Sie nicht dem Zugriff auf das VBA-Objektmodell. Ohne die Option msoFileValidationSkip wurde eine Ausnahme ausgelöst. Mit der Option msoFileValidationSkip die Datei fein geöffnet.

Es scheint mir, dass dies der richtige Weg ist, da es einem Programm erlaubt, Dateien mit Makros zu öffnen, aber die Excel-Anwendung nicht mit den von Viren befallenen Tabellen öffnet.

Beachten Sie, dass ich Office 2010 ausführe. Ich weiß nicht, auf welcher Version von Office diese Option eingeführt wurde.

    
user3495258 03.04.2014 19:03
quelle