簡體   English   中英

c#檢測powerpoint密碼保護

[英]c# detect powerpoint password protected

伙計們。 我有一個問題,我想用 C# 檢測 Powerpoint(僅限 ppt)文檔是否受密碼保護。 我現在可以檢測到 doc/docx/xls/xlsx/pptx,但就是檢測不到 ppt。 我在谷歌上搜索了很久,沒有找到更滿意的答案。 如果你知道如何解決這個問題,請告訴我。

這是您可以適應的 VBA 中的一種方法:

Sub TestForPassword()

    Dim oPres As Presentation

    On Error Resume Next
    Set oPres = Presentations.Open("c:\temp\open.pptx::xopen::")
    If Not Err.Number = 0 Then
        MsgBox "Blimey, you trapped the error!" _
            & vbCrLf & Err.Number & vbCrLf & Err.Description
    End If

End Sub

這個想法是向 .Open 方法傳遞一個密碼(在本例中為 xopen)。 如果它是受密碼保護的文件,並且您將正確的密碼傳遞給它,則該文件將打開。 如果它受密碼保護並且您傳遞了不正確的密碼,則會出現錯誤。 如果文件沒有密碼保護並且您傳遞了不正確的密碼,文件仍會打開並且沒有錯誤。

幸運的是,我發現下面的代碼能夠打開受開放保護和受編輯保護的 ppt:

Presentation presentation = ppApp.Presentations.Open($"{presentationFile}::{password1}::", MsoTriState.msoFalse, MsoTriState.msoFalse, WithWindow: MsoTriState.msoFalse);

@Viral @Alex 它也適用於 C#:

Presentation presentation = ppApp.Presentations.Open($"{presentationFile}::{password}::", MsoTriState.msoFalse, MsoTriState.msoFalse, WithWindow: MsoTriState.msoFalse);

真正的問題是當文件既受開放保護又受編輯保護時。 到目前為止,我還沒有找到一個像樣的 c# 解決方案來打開這樣的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM