Как узнать, защищен ли файл Word паролем? - PullRequest
3 голосов
/ 07 июня 2011

Я поддерживаю систему архивирования, которая должна конвертировать различные типы форматов документов в TIF.Моя проблема с защищенными паролем Word-документами.Если документ защищен паролем, Word откроет всплывающее окно с просьбой ввести пароль.Это нормально, если документ защищен паролем, если я могу просто сказать клиенту, что он должен что-то с этим сделать.Проблема в том, что я программно не могу зарегистрироваться, если Word запрашивает пароль.Приведенный ниже код является стандартным способом открытия документа без пароля.Если я не ввожу пароль или неверный пароль, Word выдает подсказку визуально через всплывающее окно.Есть ли другой способ для меня, чем использовать AutoHotKey для поиска всплывающего окна?Было бы хорошо, если бы я мог заглянуть внутрь doc-файла для поиска строки или символа, который говорит, защищен ли он или нет.

// Open the document...
this.document = wordApplication.Documents.Open(
   ref inputFile, ref confirmConversions, ref readOnly, ref missing, 
   ref missing, ref missing, ref missing, ref missing, 
   ref missing, ref missing, ref missing, ref visible, 
   ref missing, ref missing, ref missing, ref missing);

Решение:

Это можно сделать в макросе VBA в Word.Таким образом, чтобы сделать это из C #, вы должны создать макрос из C # и выполнить его.Я не пробовал это.Но вот код:

Sub MyMacro()

Dim oDoc As Document

On Error Resume Next

Set oDoc = Documents.Open(FileName:="C:\MyFile.doc", PasswordDocument:=password)
Select Case Err.Number
    Case 0
     Debug.Print "File was processed."

    Case 5408
     'Debug.Print "Wrong password!"

    Case Else
     MsgBox Err.Number & ":" & Err.Description
End Select
...