c#检测powerpoint密码保护

时间:2016-05-31 06:34:34

标签: c# powerpoint

人。我有一个问题,我想检测一个powerpoint(只有ppt)文件受密码保护或不与C#。我现在可以检测到doc / docx / xls / xlsx / pptx,但是无法检测到ppt。我在谷歌上搜索了很长时间,但我找不到更满意的答案。如果你知道如何解决这个问题,请告诉我。

3 个答案:

答案 0 :(得分:1)

以下是您可以适应的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)。 如果它是受密码保护的文件,并且您传递了正确的密码,则会打开该文件。 如果它受密码保护并且您传递了错误的密码,则会收到错误消息。 如果该文件没有受密码保护且您输入的密码不正确,则该文件仍会打开,并且没有错误。

答案 1 :(得分:1)

幸运的是,我发现以下代码能够打开受开放保护和受编辑保护的ppt:

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

答案 2 :(得分:0)

@Viral @Alex也可以在C#中使用:

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

真正的问题是文件同时处于打开保护状态和受编辑保护状态。到目前为止,我还无法找到合适的C#解决方案来打开此类文件。