Открытое редактирование и открытие защищенной паролями защищенной презентации PowerPoint - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь найти способ программно открыть презентацию, которая защищена как от открытия, так и от редактирования.
Я знаю, как добиться одного или последнего по отдельности, но не обоим без необходимости обрабатывать всплывающие окна. всплывающее окно с запросом пароля для редактирования.

Чтобы открыть открытый защищенный файл:
Presentation presentation = ppApp.Presentations.Open($"{presentationFile}::{password}::", MsoTriState.msoFalse, MsoTriState.msoFalse, WithWindow: MsoTriState.msoFalse);

Чтобы открыть защищенный от редактирования файл:
var presentation = ppApp.ProtectedViewWindows.Open($"{presentationFile}", editPassword, MsoTriState.msoFalse);

Актуальный вопрос : Как открыть презентацию, защищенную как открытыми, так и отредактированными (известными) паролями, удалить их и сохранить презентацию? "

Любой совет будет приветствоваться, спасибо!

1 Ответ

0 голосов
/ 10 октября 2019

Эти два подхода совершенно разные.

Файлы, отображаемые в окне защищенного просмотра, не могут быть отредактированы, и в них запрещено запускать активный контент, например макросы Visual Basic для приложений и подключения к данным. Для получения дополнительной информации об окнах защищенного просмотра см. Что такое защищенное представление? .

Метод ProtectedViewWindows.Open позволяет указать пароль для чтения. Он открывается и возвращает объект ProtectedViewWindow из коллекции ProtectedViewWindows. Метод ProtectedViewWindow.Edit изменяет пароль объекта ProtectedViewWindow.

Поскольку окно защищенного просмотра предназначено для защиты пользователя от потенциально вредоносного кода, операции, которые вы можете выполнять с помощьюиспользование объекта Presentation, возвращаемого объектом ProtectedViewWindow, будет ограничено. Недопустимые операции приведут к ошибке.

Если мы говорим о файлах, защищенных паролем, предполагая, что вы знаете пароль, вы можете открыть файл примерно так:

Presentations.Open("c:\temp\protected_presentation.pptx::password::")

Иустановите пароль для презентации, например:

ActivePresentation.Password = "Hide_me"

Так, например, простой эскиз:

Sub TestTest()

    Dim oPPTApp As Object
    Dim oPPTPres As Object

    Set oPPTApp = CreateObject("PowerPoint.Application")

    If Not oPPTApp Is Nothing Then
        Set oPPTPres = oPPTApp.presentations.Open("C:\temp\test.pptx::opensesame::")
        MsgBox oPPTPres.slides(1).Shapes(1).TextFrame.TextRange.Text
        oPPTPres.Close
        oPPTApp.Quit
    End If
End Sub
...