私は、COMオートメーションを介してMS-Word 2007ドキュメントを読み込むシンプルなC#Winformsアプリケーションを開発しました。C#を使用してMS-Wordのセキュリティセンター設定をプログラムで構成する
これはすべて非常に単純で簡単ですが、ドキュメントに応じてマクロを有効にするかどうか、ActiveXコントロールを有効にするかどうかを選択する必要があります。
おそらくこれをレジストリに保存する方法がありますが、複数の同時リクエストが同時に実行される可能性があるため、これらの設定をインスタンスごとに制御したいと考えています。
私の質問は 'です。どのようにCOMオートメーションを使用してトラストセンターの設定を構成しますか?'
私は時間のためにGoogleで検索しましたが、すべては私がApplication.AutomationSecurityプロパティで見つけることができたが、これは以下の値のみ受け付けます。
- MsoAutomationSecurity.msoAutomationSecurityLowを
- MsoAutomationSecurity.msoAutomationSecurityForceDisable
- MsoAutomationSecurity.msoAutomationSecurityByUI
ただし、Word 2007の信頼センターでは、以下の設定:
マクロの設定:
- 無効にすべてのマクロの通知(msoAutomationSecurityForceDisableと一致する)ことなく、
- 通知を無効にしてすべてのマクロ(私はこの1つを必要としない)デジタル除く
- 無効にすべてのマクロ署名されたマクロ(対応なし)
- すべてのマクロを有効にする(msoAutomationSecurityLowに一致)
alt text http://www.visguy.com/wp-content/uploads/2007/05/v2007-security-settings.png
ActiveXコントロール(個別に設定、私はスクリーンショットに応じてこれらの設定は、すべてのアプリケーション間で共有されることに注意し、これらを制御するための任意の方法を発見していない)
- 無効すべてのコントロール無し通知
- UFIコントロールを有効にする前に私に尋ねる....
- すべてのコントロールを最小限に抑える前にプロンプトを表示
- 制限
せずにすべてのコントロールを有効にし、私はこれらの設定を変更しながら、MS-Wordのマクロを記録する古いトリックを試してみましたが、これらのステップのいずれも記録されません。
更新: レジストリのActiveXコントロールの設定には、次のエントリがあります。ActiveXの設定は実際にはグローバルで、誰かが間違っていることを証明しない限り、単一のMS-Wordインスタンスに対して指定することはできません。
のActiveX無効
ます。[HKEY_CURRENT_USER \ Software \ Microsoft \ Officeの\共通\セキュリティ] "DisableAllActiveX" = DWORD値:00000001 "UFIControls" = DWORD値:セーフモード
で有効00000002のActiveX
ます。[HKEY_CURRENT_USER \ Software \ Microsoft \ Officeの\共通\セキュリティ] "DisableAllActiveX" = DWORD値:00000000 "UFIControls" = DWORD値:00000002
セーフモードせずに有効ActiveXの[ます。HKEY_CURRENT_USER \ Software \ Microsoft \ Officeの\共通\セキュリティ] "DisableAllActiveX" = DWORD値:00000000 "UFIControls" = DWORD:マクロを解決00000001
はまだ熱心設定の問題