[英]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.