2009-10-21 33 views
8

Tôi đã phát triển một ứng dụng C# Winforms đơn giản tải các tài liệu MS-Word 2007 qua tự động hóa COM.Lập trình cấu hình cài đặt Trung tâm Tin cậy của MS-Word bằng C#

Đây là tất cả rất đơn giản và thẳng về phía trước, tuy nhiên tùy thuộc vào tài liệu tôi cần lập trình Bật hoặc Tắt Macro cũng như điều khiển ActiveX.

Có lẽ có một cách để lưu trữ điều này trong sổ đăng ký, nhưng tôi muốn kiểm soát các cài đặt này trên cơ sở ví dụ như nhiều yêu cầu đồng thời có thể chạy cùng một lúc.

Vì vậy, câu hỏi của tôi là 'cách tôi định cấu hình cài đặt trung tâm tin cậy bằng cách sử dụng tự động hóa COM'.

Tôi đã google để tìm giờ, nhưng tất cả tôi đã có thể tìm thấy là tài sản Application.AutomationSecurity, nhưng điều này chỉ chấp nhận các giá trị sau:

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

Trung tâm tin cậy của Word 2007 sẽ hiển thị cài đặt sau:

Cài đặt Macro:

  • Disable tất cả các macro mà không cần thông báo (phù hợp với msoAutomationSecurityForceDisable)
  • Disable tất cả các macro với thông báo (tôi không cần cái này)
  • Disable tất cả các macro ngoại trừ kỹ thuật số macro đã ký (Không tương đương)
  • Bật tất cả các macro (khớp với msoAutomationSecurityLow)

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


ActiveX điều khiển (cấu hình riêng, tôi đã không tìm thấy bất cứ cách nào để kiểm soát này, lưu ý rằng theo ảnh chụp màn hình các thiết lập này được chia sẻ giữa tất cả các ứng dụng)

  • Disable tất cả các điều khiển mà không cần thông báo
  • Nhắc tôi trước khi bật điều khiển UFI ....
  • Nhắc tôi trước khi cho phép tất cả các điều khiển có giới hạn tối thiểu
  • Enable tất cả các điều khiển mà không hạn chế

alt text

Tôi đã cố gắng lừa cũ của ghi macro MS-Word trong khi thay đổi các thiết lập này, nhưng không ai trong số các bước sau được ghi lại.

Cập nhật: Tôi đã tìm thấy các mục nhập sau cho cài đặt điều khiển ActiveX trong sổ đăng ký.Có vẻ như cài đặt ActiveX thực sự là toàn cục và không thể được chỉ định cho một cá thể MS-Word duy nhất trừ khi có ai đó chứng minh tôi sai.

ActiveX Disabled

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

ActiveX Bật chế độ safe mode

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

ActiveX Enabled không có chế độ an toàn

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

Tuy nhiên mong muốn giải quyết vĩ mô vấn đề cài đặt

Trả lời

7

Có vẻ như tôi sẽ trả lời câu hỏi của riêng tôi.

Tôi đã thử nghiệm nó và có thể khẳng định ánh xạ như sau:

Cài đặt Macro:

  • msoAutomationSecurityForceDisable = Tắt tất cả các macro mà không thông báo

  • msoAutomationSecurityByUI = Tắt tất cả macro ngoại trừ số điện thoại macro đã ký

  • msoAutomationSecurityLow = Enable tất cả các macro

Để theo sự hiểu biết của tôi các thiết lập ActiveX toàn cầu chỉ có thể được cấu hình bằng cách trực tiếp chỉnh sửa registry

ActiveX Disabled

[HKEY_CURRENT_USER \ Phần mềm \ Microsoft \ Office \ Common \ Security] "DisableAllActiveX" = dword: 00000001 "UFIControls" = dword: 00000002

ActiveX Bật chế độ safe mode

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

ActiveX Enabled không có chế độ an toàn

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

tôi đã để lại một bình luận trong relevant section of the MSDN website

2

Tôi biết chủ đề này là khá cũ, nhưng tôi phải tìm nó ra ngày hôm nay như vậy sau khi một nghiên cứu nhanh chóng tôi thấy registry này cho Settings Center Tín:

này áp dụng cho Word phiên bản 2010 (và có lẽ năm 2007, nhưng với 12.0 thay vì 14,0)

enter image description here

Hoặc trong văn bản:

Registry locat ion:

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

Cài đặt Macro:

Tên: VBAWarnings

liệu:

Disable tất cả các macro mà không cần thông báo -

Disable tất cả macro có thông báo -

Disable tất cả các macro trừ macro chữ ký số -

Enable tất cả các macro (...) -

Developer Cài đặt Macro:

Tên: AccessVBOM

liệu:

không được kiểm soát -

Checked -

0

Đối với các thiết lập cho các điều khiển ActiveX trong office 2010

để DisbaleActiveX không có chế độ an toàn, bạn chỉ cần .. .

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

Tôi đã dành một vài ngày cố gắng cùng một điều và cuối cùng đã phát hiện ra một cách rất đơn giản để mở một tập tin .xls chứa macro, mà không gây rối với registry hoặc các thiết lập tin cậy của Excel. Trong C#:

Application aXL = new Application(); 
aXL.FileValidation = 
    Microsoft.Office.Core.MsoFileValidationMode.msoFileValidationSkip; 
try { 
    Workbook aBook = aXL.Workbooks.Open("K:\\Work\\ExcelTest\\BrokenMacro.xls" 
        , 0 
        , true 
        , Type.Missing 
        , Type.Missing 
        , Type.Missing 
        , true 
        , Type.Missing 
        , Type.Missing 
        , false 
        , false 
        , Type.Missing 
        , false 
        , false 
        , Type.Missing 
        /*,false*/); 
      } 
      catch (Exception e) { 
       Console.WriteLine(e); 
      } 

Xem MSDN để biết chi tiết.

Cài đặt trung tâm tin cậy Excel của tôi đều được đặt thành giá trị mặc định - "Tắt tất cả các macro bằng cảnh báo" và "Không tin cậy quyền truy cập vào mô hình đối tượng VBA mà không có tùy chọn msoFileValidationSkip ngoại lệ được ném. Với tùy chọn msoFileValidationSkip tập tin mở tốt.

dường như với tôi rằng đây là con đường để đi, vì nó cho phép một chương trình để mở file với các macro, nhưng không mở ra virus ứng dụng bảng tính Excel cưỡi.

Lưu ý rằng Tôi đang chạy Office 2010. Tôi không biết phiên bản Office nào được tùy chọn này được giới thiệu.

Các vấn đề liên quan