c#检测受密码保护的powerpoint
伙计们。我有一个问题,我想检测powerpoint(仅ppt)文档是否受密码保护或不使用C。我现在可以检测到doc/docx/xls/xlsx/pptx,但无法检测到ppt。我在谷歌上搜索了很长时间,但没有找到更满意的答案。如果您知道如何解决此问题,请告诉我。这里有一种VBA方法,您可以进行调整:c#检测受密码保护的powerpoint,c#,powerpoint,C#,Powerpoint,伙计们。我有一个问题,我想检测powerpoint(仅ppt)文档是否受密码保护或不使用C。我现在可以检测到doc/docx/xls/xlsx/pptx,但无法检测到ppt。我在谷歌上搜索了很长时间,但没有找到更满意的答案。如果您知道如何解决此问题,请告诉我。这里有一种VBA方法,您可以进行调整: Sub TestForPassword() Dim oPres As Presentation On Error Resume Next Set oPres = Prese
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)。
如果它是受密码保护的文件,并且您向其传递了正确的密码,则会打开该文件。
如果它受密码保护,而您传递的密码不正确,则会出现错误。
如果该文件没有密码保护,而您传递的密码不正确,则该文件仍然会打开,并且没有错误。@Viral@Alex它在C#中也可以工作:
真正的问题是当文件同时受打开保护和编辑保护时。到目前为止,我还没有找到一个像样的c#解决方案来打开这样的文件。幸运的是,我发现下面的代码能够打开受打开保护和编辑受保护的ppt:
Presentation presentation = ppApp.Presentations.Open($"{presentationFile}::{password1}::", MsoTriState.msoFalse, MsoTriState.msoFalse, WithWindow: MsoTriState.msoFalse);
想分享你目前的方法吗?特别是,如果您已经成功地使用了其他办公产品,您应该能够调整解决方案,无论是allone还是至少与社区一起。但是,您必须提供一些自己的方法和解决方案。对我来说非常有用!:)@Alex,你好,你能分享一下如何在C中验证这个吗?对于提供的解决方案,我想做同样的事情,我在open中看不到密码参数method@Viral虽然最初的问题是关于C#,但这里发布的解决方案和我尝试的解决方案是针对VBA的。C#和VSTO是一个不同的故事——因此,您需要在其他地方寻找解决方案。
Presentation presentation = ppApp.Presentations.Open($"{presentationFile}::{password1}::", MsoTriState.msoFalse, MsoTriState.msoFalse, WithWindow: MsoTriState.msoFalse);