Programmgesteuert konfigurieren von MS-Word-Vertrauensstellungscenter-Einstellungen mit C#
Entwickelt ich eine einfache C# - Winforms-Anwendung, lädt MS-Word-2007-Dokumente über die COM-Automatisierung.
Dies ist alles sehr einfach und geradlinig, aber je nach Dokument, das ich brauche, um programamtically Aktivieren oder Deaktivieren von Makros als auch ActiveX-Steuerelemente.
Es ist wahrscheinlich ein Weg, um dies in der registry, aber ich möchte die Kontrolle über diese Einstellungen über eine Instanz von Instanz-basis, wie mehrere gleichzeitige Anfragen kann zu einem Zeitpunkt ausgeführt werden.
Also meine Frage ist: "wie Konfiguriere ich die trust center-Einstellungen über die COM-Automatisierung'.
Habe ich Googeln für Stunden, aber alles was ich finden konnte, haben die Anwendung.AutomationSecurity-Eigenschaft, aber dieser akzeptiert nur die folgenden Werte:
- MsoAutomationSecurity.msoAutomationSecurityLow
- MsoAutomationSecurity.msoAutomationSecurityForceDisable
- MsoAutomationSecurity.msoAutomationSecurityByUI
Word 2007 Vertrauensstellungscenter jedoch stellt die folgenden Einstellungen:
Makro-Einstellungen:
- Alle Makros ohne Benachrichtigung deaktivieren (entspricht msoAutomationSecurityForceDisable)
- Deaktivieren Sie alle Makros mit Benachrichtigungen (die ich nicht brauchen)
- Deaktivieren alle Makros außer Digital signierte Makros (Nicht äquivalent)
- Alle Makros aktivieren (entspricht msoAutomationSecurityLow)
(Quelle: visguy.com)
ActiveX-Steuerelemente (separat konfiguriert, ich habe nicht gefunden, einen Weg, um die Kontrolle über diese, beachten Sie, dass nach dem screenshot diese Einstellungen sind Global für alle Anwendungen)
- Deaktivieren Sie alle Steuerelemente ohne Benachrichtigung
- Eingabeaufforderung anzeigen, bevor UFI-Steuerelemente....
- Eingabeaufforderung anzeigen, bevor alle Steuerelemente mit minimalen erstrictions
- Damit alle Steuerelemente ohne Einschränkungen
Habe ich versucht die alte trick der Aufnahme einer MS-Word-Makros, während Sie diese Einstellungen ändern, aber keiner dieser Schritte werden aufgezeichnet.
Update:
Ich habe festgestellt, die folgenden Einträge für die ActiveX-Steuerelemente-Einstellungen in der registry. Sieht aus wie ActiveX-Einstellungen sind in der Tat global und kann nicht angegeben werden, für eine einzelne MS-Word-Instanz, es sei denn, jemand beweist mir falsch.
ActiveX Deaktiviert
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"Disableallactivex geändert"=dword:00000001
"UFIControls"=dword:00000002
ActiveX Aktiviert mit dem abgesicherten Modus
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"Disableallactivex geändert"=dword:00000000
"UFIControls"=dword:00000002
ActiveX Aktiviert ohne den abgesicherten Modus
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]
"Disableallactivex geändert"=dword:00000000
"UFIControls"=dword:00000001
Immer noch daran interessiert, zu beheben, die makro-Einstellungen problem
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aussieht, werde ich die Antwort auf meine eigene Frage.
Habe ich es getestet und kann bestätigen die Zuordnungen sind wie folgt:
Makro-Einstellungen:
msoAutomationSecurityForceDisable = Deaktivieren alle Makros ohne
Benachrichtigung
msoAutomationSecurityByUI = Deaktivieren alle Makros außer Digital
signierte Makros
msoAutomationSecurityLow = alle Makros Aktivieren
Zu den besten meines Wissens die Globale ActiveX-Einstellungen können nur konfiguriert werden, indem Sie die Registrierung direkt Bearbeiten
ActiveX Deaktiviert
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security] "disableallactivex geändert"=dword:00000001 "UFIControls"=dword:00000002
ActiveX Aktiviert mit dem abgesicherten Modus
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security] "disableallactivex geändert"=dword:00000000 "UFIControls"=dword:00000002
ActiveX Aktiviert ohne den abgesicherten Modus
[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security] "disableallactivex geändert"=dword:00000000 "UFIControls"=dword:00000001
Habe ich einen Kommentar hinterlassen, in dem relevanten Abschnitt der MSDN-website
Ich weiß dieser thread ist schon ziemlich alt, aber ich musste es herausfinden heute, so nach einer kurzen recherche fand ich diese Registrierung für die Trust Center-Einstellungen:
Dies gilt für die Word-version 2010 (und wahrscheinlich 2007, aber mit 12,0 anstelle von 14.0)
Oder im text:
Registrierungsschlüssel:
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Security
Makro-Einstellungen:
Namen: VBAWarnings
Daten:
Alle Makros ohne Benachrichtigung deaktivieren - 4
Alle Makros mit Benachrichtigung deaktivieren - 2
Deaktivieren alle Makros außer Digital signierten Makros - 3
Alle Makros aktivieren (...) - 1
Entwickler-Einstellungen Für Makros:
Namen: AccessVBOM
Daten:
Nicht aktiviert - 0
Geprüft - 1
Für die Einstellung ActiveX-Steuerelemente in office 2010
zu DisbaleActiveX ohne den abgesicherten Modus benötigen Sie nur ...
Ich habe ein paar Tage versucht, die gleiche Sache, und entdeckte schließlich eine sehr einfache Art zu öffnen .xls-Datei mit Makros, ohne Unordnung mit der Registrierung oder Excel-Vertrauen-Einstellungen. In C#:
Sehen MSDN für details.
Meine Excel-Sicherheitscenter-Einstellung waren alle auf Standardwerte gesetzt - "Disable Alle Makros mit Warnungen" und "Nicht Vertrauen Zugriff auf das VBA-Objektmodell. Ohne die msoFileValidationSkip option eine Ausnahme geworfen wurde. Mit der msoFileValidationSkip option wird die Datei geöffnet, in Ordnung.
Scheint es mir, dass dies der Weg zu gehen, da Sie es ermöglicht, ein Programm zum öffnen von Dateien mit Makros, aber nicht öffnen Sie die Excel-Anwendung, virus geritten Tabellen.
Beachten Sie, dass ich mit Office 2010. Ich weiß nicht, auf welche Office-version wurde diese option eingeführt.