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