11
votes

Configuration de manière programmée sur les paramètres du centre de confiance de MS-Word à l'aide de C #

J'ai développé une application de Winforms C # simple qui charge des documents MS-Word 2007 via COM Automation.

Ceci est tout très simple et simple, cependant, en fonction du document dont j'ai besoin d'activer ou de désactiver des macros ainsi que des contrôles ActiveX.

Il existe probablement un moyen de stocker cela dans le registre, mais je veux contrôler ces paramètres sur une instance par exemple, car plusieurs demandes simultanées peuvent être exécutées à la fois.

Donc, ma question est ' comment configurer les paramètres du centre de confiance à l'aide de COM Automation '.

J'ai googlé pendant des heures, mais tout ce que j'ai pu trouver est l'application.AutomationEcity Propriété, mais cela n'accepte que les valeurs suivantes:


0 commentaires

4 Réponses :


8
votes

On dirait que je vais répondre à ma propre question.

Je l'ai testé et peut confirmer que les mappages sont les suivants:

Paramètres de macro:

  • msoautomationecurityForcedisable = désactiver toutes les macros sans Notification

  • msoautomationecurityByUI = désactiver toutes les macros sauf numériquement Macros signé

  • msoautomationecurityLow = Activer toutes les macros

    Au meilleur de ma connaissance, les paramètres ActiveX globaux ne peuvent être configurés que par modifier directement le registre

    ActiveX désactivé

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security] "DisablealLactiveX" = DWORD: 00000001 "UFFICOROLS" = DWORD: 00000002

    ActiveX activé avec mode sans échec

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security] "DisablealLactiveX" = DWORD: 00000000 "UFFONTROLS" = DWORD: 00000002

    ActiveX activé sans mode de sécurité

    [HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security] "DisableallActiveX" = DWORD: 00000000 "UFFICOROLS" = DWORD: 00000001

    J'ai laissé un commentaire dans le section pertinente du site Web MSDN


0 commentaires

3
votes

Je sais que ce fil est assez vieux, mais je devais le comprendre aujourd'hui, donc après une recherche rapide j'ai trouvé ce registre pour le Trust Center Paramètres :

Ceci est valable pour la version Word 2010 (et probablement 2007, mais avec 12,0 au lieu de 14,0)

entrer image description ici

Ou dans le texte:

Registre emplacement:

HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Word \ Security

Paramètres de macro:

Nom : VBAWarnings

Données :

Désactiver toutes les macros sans notification - 4

Désactiver toutes les macros avec notification - 2

Désactiver toutes les macros à l'exception des macros signées numériquement - 3

Activer toutes les macros (...) - 1

Paramètres des macros Développeur:

Nom : AccessVBOM

Données :

Décoché - 0

Analyse - 1


0 commentaires

0
votes

Pour le réglage des contrôles ActiveX dans Office 2010

à DisbaleActiveX sans mode sans échec, il vous suffit de ... P>

"HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security" /v UFIControls /t REG_DWORD /D 1 /F


0 commentaires

0
votes

J'ai passé quelques jours à essayer la même chose et j'ai finalement découvert un moyen très simple d'ouvrir un fichier .xls contenant des macros, sans gâcher les paramètres de confiance du registre ou de l'Excel. En C #: xxx

voir msdn pour plus de détails.

mon paramètre Excel Trust Center a été défini sur des valeurs par défaut -" Désactiver toutes les macros avec des avertissements " et "ne faites pas confiance à l'accès au modèle d'objet VBA. Sans l'option MSOfilevalidationskip Une exception a été lancée. Avec l'option MSOfilevalidationskip, le fichier a ouvert l'amende.

Il me semble que c'est la voie à suivre, Puisqu'il permet à un programme d'ouvrir des fichiers avec des macros, mais n'ouvre pas les feuilles de calcul des virus d'application Excel.

Notez que je cours bureau 2010. Je ne sais pas sur quelle version du bureau Cette option a été introduite.


0 commentaires