Word. Запароленные документы - C#
Формулировка задачи:
Здравствуйте.
При попытке открытия запароленного документа, приложение Word становится видимым и предлагает пользователю самому ввести его.
При просмотре параметров Documents.Open есть параметр пароля, но пароля я не знаю и знать не могу.
Как можно обойти такой документ изначально, чтобы Word не спрашивал пользователя?
Можно ли изначально проверить, запаролен ли документ и пропустить его? Заранее спасибо.
Решение задачи: «Word. Запароленные документы»
textual
Листинг программы
- public static Boolean IsProtected(String file)
- {
- Byte[] bytes = File.ReadAllBytes(file);
- String prefix = Encoding.Default.GetString(bytes.Take(2).ToArray());
- // Zip and not password protected.
- if (prefix == "PK")
- return false;
- // Office format.
- if (prefix == "ГђГЏ")
- {
- // XLS 2003
- if (bytes.Skip(0x208).Take(1).ToArray()[0] == 0xFE)
- return true;
- // XLS 2005
- if (bytes.Skip(0x214).Take(1).ToArray()[0] == 0x2F)
- return true;
- // DOC 2005
- if (bytes.Skip(0x20B).Take(1).ToArray()[0] == 0x13)
- return true;
- // Guessing
- if (bytes.Length < 2000)
- return false;
- // DOC/XLS 2007+
- String start = Encoding.Default.GetString(bytes.Take(2000).ToArray()).Replace("\0", " ");
- if (start.Contains("E n c r y p t e d P a c k a g e"))
- return true;
- return false;
- }
- // Unknown format.
- return false;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д