調用Office對象使用rms加密

微軟提供的rms服務可以對文檔進行加密和授權,經過加密和授權的文檔,只有指定的用戶纔可以查看和執行相應的操作,這對於那些想保護自己信息的企業來說無疑非常有用。我們公司打算用它來對技術管理部的文檔借閱系統中的好幾十個吉的文檔進行保護。呵呵呵,如果一個一個文檔地加密肯定不現實,那麼,只有自己開發一個程序來完成這個操作了。一開始,我想使用rmssdk中提供的方法來做,後來發現,那有點複雜。我想,既然office中已經有了這個功能,爲什麼不直接調用Office對象來做呢?我到msdn中搜了一把,很輕鬆就找到了解決方案。我根據msdn中提供的例子,我做了段小程序就解決了這個問題,下面是我的例子:


    首先要引用
microsoft.office.core(com組件中的office lib)microsoft.office.excelword

    Imports Microsoft.office.Core.MsoPermission

    然後用下列代碼來完成加密

Try

'首先啓動一個word進程,那麼運行這段程序的機器上當然就要安裝office2003rms客戶端啦

          myApp = New Microsoft.Office.Interop.Word.ApplicationClass

         '打開要加密的文檔

myDoc = myApp.Documents.Open(TextBox1.Text)

myDoc.Activate()

'創建一個加密的對象

Dim IrmPermission As Microsoft.Office.Core.Permission

IrmPermission = myDoc.Permission

IrmPermission.Enabled = True

Dim msoPerm As Integer

'只讀

If Me.CheckBoxReadOnly.Checked = True Then

msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionRead

End If

'允許打印

If Me.CheckBoxPrint.Checked = True Then

msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionPrint

 

          End If

          '允許複製

          If Me.CheckBoxCopy.Checked = True Then

         msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionExtract

                   End If

                    '允許完全控制

        If Me.CheckBoxFullControl.Checked = True Then

    msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionFullControl

        End If

            '允許另存

        If Me.CheckBoxSave.Checked = True Then

    msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionSave

        End If

            '允許使用瀏覽器閱讀

        If Me.CheckBoxUseBrowers.Checked = True Then

    IrmPermission.EnableTrustedBrowser = True

        Else

    IrmPermission.EnableTrustedBrowser = False

        End If

            '允許脫機閱讀

        If Me.CheckBoxOnline.Checked = True Then

    IrmPermission.StoreLicenses = False

        Else

    IrmPermission.StoreLicenses = True

        End If

                   'textbox3中是允許讀取該文檔的用戶的郵件地址,第二個參數就是前面計算好的權限代碼,最後一個參數是過期日期

    IrmPermission.Add(TextBox3.Text, msoPerm, ExDate)  '#7/31/2005#)

             '另存

    myDoc.SaveAs(TextBox2.Text & "/" & System.DateTime.Now.ToString("yyyyMMddHHmmss") & ".doc")

    myDoc.Close()

    myApp.Quit()

    IrmPermission = Nothing

    myDoc = Nothing

    myApp = Nothing

    MessageBox.Show("OK!")

    Catch ex As Exception

 

        MessageBox.Show(ex.Message)

    End Try

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章