Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Пропуск запароленного файла при пакетной обработке. - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Power Point » Пропуск запароленного файла при пакетной обработке. (Макросы/Sub)
Пропуск запароленного файла при пакетной обработке.
bmv98rus Дата: Пятница, 10.02.2017, 19:32 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Всем доброго пятничного вечера.

Каким образом можно обеспечить пропуск запаролленного файла при пакетной обработке скриптом.

Сразу оговорка, что это PowerPoint, но смысл от этого не меняется. Идет обработка очень весомой файловой структуры (более 7миллионов файлов и 7к презентаций, с утра обработано и продолжаеттся тестовый прогоне). В них надо заменить при наличии несколько слов, по этому каждый файл открывается [vba]
Код
Set objPresentation = Application.Presentations.Open(FilePath, msoFalse, msoFalse, msoFalse)
[/vba] . но если он запаролен, то приложение ждет ввода пароля или отмены. Если отмену нажать, то ошибка обработатеся, пишется в лог, но надо нажать , а значит смотреть глазами, что при таком объеме затруднительно.

Может у кого есть мысли на этот счет?
 
Ответить
СообщениеВсем доброго пятничного вечера.

Каким образом можно обеспечить пропуск запаролленного файла при пакетной обработке скриптом.

Сразу оговорка, что это PowerPoint, но смысл от этого не меняется. Идет обработка очень весомой файловой структуры (более 7миллионов файлов и 7к презентаций, с утра обработано и продолжаеттся тестовый прогоне). В них надо заменить при наличии несколько слов, по этому каждый файл открывается [vba]
Код
Set objPresentation = Application.Presentations.Open(FilePath, msoFalse, msoFalse, msoFalse)
[/vba] . но если он запаролен, то приложение ждет ввода пароля или отмены. Если отмену нажать, то ошибка обработатеся, пишется в лог, но надо нажать , а значит смотреть глазами, что при таком объеме затруднительно.

Может у кого есть мысли на этот счет?

Автор - bmv98rus
Дата добавления - 10.02.2017 в 19:32
Pelena Дата: Пятница, 10.02.2017, 19:42 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 10830
Репутация: 2425 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеПохожая тема

Автор - Pelena
Дата добавления - 10.02.2017 в 19:42
bmv98rus Дата: Пятница, 10.02.2017, 19:58 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Pelena,

Прежде всего с прошедшим. Всего, всего и формучан послушных. :-)

Пробовал, PowerPoint (https://msdn.microsoft.com/en-us/library/office/ff746171(v=office.15).aspx ) к несчасть. а не Excel и не Word.В той ветке тишина стоит по этому сюда написал.
Если на планете не будут возражать и тут не против, я на эту тему ссылку сделаю там в новой теме, если сдешние обитатели , которые впрочем пересекаются, не смогут дать совета до понедельника. ок?
 
Ответить
СообщениеPelena,

Прежде всего с прошедшим. Всего, всего и формучан послушных. :-)

Пробовал, PowerPoint (https://msdn.microsoft.com/en-us/library/office/ff746171(v=office.15).aspx ) к несчасть. а не Excel и не Word.В той ветке тишина стоит по этому сюда написал.
Если на планете не будут возражать и тут не против, я на эту тему ссылку сделаю там в новой теме, если сдешние обитатели , которые впрочем пересекаются, не смогут дать совета до понедельника. ок?

Автор - bmv98rus
Дата добавления - 10.02.2017 в 19:58
Pelena Дата: Пятница, 10.02.2017, 20:19 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 10830
Репутация: 2425 ±
Замечаний: 0% ±

Excel 2010 & Mac Excel 2011
Спасибо.

Но тему всё же перенесу в соответствующий раздел про PowerPoint


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеСпасибо.

Но тему всё же перенесу в соответствующий раздел про PowerPoint

Автор - Pelena
Дата добавления - 10.02.2017 в 20:19
bmv98rus Дата: Пятница, 10.02.2017, 20:51 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
[offtop]
раздел про PowerPoint

Боюсь тут она и умрет безответной.[/offtop]
 
Ответить
Сообщение[offtop]
раздел про PowerPoint

Боюсь тут она и умрет безответной.[/offtop]

Автор - bmv98rus
Дата добавления - 10.02.2017 в 20:51
anvg Дата: Пятница, 10.02.2017, 23:03 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 301
Репутация: 160 ±
Замечаний: 0% ±

2010, 2016
Доброе время суток.
Для презентаций существуют два вида паролей (рассматривается стандартный новый формат pptx).
1. Пароль для открытия файла. При этом файл шифруется и начало файла не соответствует признаку zip-архива. Проверить можно такой простой функцией[vba]
Код
Public Function isCrypted(ByVal FileName As String) As Boolean
    Dim fNum As Integer, byteArr(1 To 13) As Byte
    fNum = FreeFile
    Open FileName For Binary Access Read As #fNum
    Get #fNum, , byteArr
    Close #fNum
    If byteArr(1) = 80 And byteArr(2) = 75 And byteArr(13) = 33 Then
        isCrypted = False
    Else
        isCrypted = True
    End If
End Function
[/vba]
2. Пароль для разрешения записи. Тут формат zip-архив,
При этом в файле ppt\presentation.xml есть узел <p:modifyVerifier>. Можно сменив предварительно расширение файла на zip, используя Shell.Application скопировать файл, и проверить есть ли такой node, используя метод selectSingleNode объекта Msxml2.DOMDocument.6.0
Если нет, то нет пароля на запись, если есть - установлен. Главное не забыть вернуть расширение назад :)
В общем требуется двухстадийная проверка файла. По идее, не должно быть долго.
Успехов.


Сообщение отредактировал anvg - Пятница, 10.02.2017, 23:04
 
Ответить
СообщениеДоброе время суток.
Для презентаций существуют два вида паролей (рассматривается стандартный новый формат pptx).
1. Пароль для открытия файла. При этом файл шифруется и начало файла не соответствует признаку zip-архива. Проверить можно такой простой функцией[vba]
Код
Public Function isCrypted(ByVal FileName As String) As Boolean
    Dim fNum As Integer, byteArr(1 To 13) As Byte
    fNum = FreeFile
    Open FileName For Binary Access Read As #fNum
    Get #fNum, , byteArr
    Close #fNum
    If byteArr(1) = 80 And byteArr(2) = 75 And byteArr(13) = 33 Then
        isCrypted = False
    Else
        isCrypted = True
    End If
End Function
[/vba]
2. Пароль для разрешения записи. Тут формат zip-архив,
При этом в файле ppt\presentation.xml есть узел <p:modifyVerifier>. Можно сменив предварительно расширение файла на zip, используя Shell.Application скопировать файл, и проверить есть ли такой node, используя метод selectSingleNode объекта Msxml2.DOMDocument.6.0
Если нет, то нет пароля на запись, если есть - установлен. Главное не забыть вернуть расширение назад :)
В общем требуется двухстадийная проверка файла. По идее, не должно быть долго.
Успехов.

Автор - anvg
Дата добавления - 10.02.2017 в 23:03
bmv98rus Дата: Суббота, 11.02.2017, 09:49 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Андрей,

Приогромнейшее спасибо. 1 - уже проверил , вставил и все работает, а 2 - видимо еще один прогон сделаю, нечего серверам "простаивать". Если всплывет, то буду думать в зависимости от количества таких файлов. В этом варианте и так добавились проверки на длинну пути ( некоторые под 260 были), а мы запустили по полному пути к шаре, а не как у пользователей мапированный диск. Поверку на пароль вот добавил.

Еще раз спасибо. По хорошему завидую таким обширным знаниям.
 
Ответить
СообщениеАндрей,

Приогромнейшее спасибо. 1 - уже проверил , вставил и все работает, а 2 - видимо еще один прогон сделаю, нечего серверам "простаивать". Если всплывет, то буду думать в зависимости от количества таких файлов. В этом варианте и так добавились проверки на длинну пути ( некоторые под 260 были), а мы запустили по полному пути к шаре, а не как у пользователей мапированный диск. Поверку на пароль вот добавил.

Еще раз спасибо. По хорошему завидую таким обширным знаниям.

Автор - bmv98rus
Дата добавления - 11.02.2017 в 09:49
anvg Дата: Суббота, 11.02.2017, 14:24 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 301
Репутация: 160 ±
Замечаний: 0% ±

2010, 2016
По хорошему завидую таким обширным знаниям
Тут дело скорее не в знаниях. Просто провёл исследование - учили же на инженера, а первая задача инженера исследование и анализ... Знаний то тут - что у всех типовых файлов начало имеет сигнатуру, остальное опыт.
 
Ответить
Сообщение
По хорошему завидую таким обширным знаниям
Тут дело скорее не в знаниях. Просто провёл исследование - учили же на инженера, а первая задача инженера исследование и анализ... Знаний то тут - что у всех типовых файлов начало имеет сигнатуру, остальное опыт.

Автор - anvg
Дата добавления - 11.02.2017 в 14:24
bmv98rus Дата: Суббота, 11.02.2017, 15:55 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
[offtop]Андрей, не скромничайте.

Я говорю не о бесполезных энцеклопедических знаниях, а именно о знаниях которые позволяют оценить, исследовать и собрать "пазл" в конечный ответ.[/offtop]
 
Ответить
Сообщение[offtop]Андрей, не скромничайте.

Я говорю не о бесполезных энцеклопедических знаниях, а именно о знаниях которые позволяют оценить, исследовать и собрать "пазл" в конечный ответ.[/offtop]

Автор - bmv98rus
Дата добавления - 11.02.2017 в 15:55
bmv98rus Дата: Понедельник, 13.02.2017, 14:43 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Эхх, рано радовался. нашлись .PPT файлы и там все по другому . Сижу читаю https://msdn.microsoft.com/en-us/library/cc313106(v=office.12).aspx , плачу :-)

[vba]
Код
Public Function isCrypted(ByVal FileName As String) As Boolean
    Dim fNum As Integer, byteArr(1 To 49) As Byte
    fNum = FreeFile
    Open FileName For Binary Access Read As #fNum
    Get #fNum, , byteArr
    Close #fNum
    
' pptx
'   1-80 ,2-75, 13-33 - The file SHOULD NOT be an encrypted document.
'   1-208 ,2-207, 13-0 - The file MUST be an encrypted document.
' ppt
'   1-208 ,2-207, 13-0 , 45-12 , 49-181 - The file SHOULD NOT be an encrypted document.
'   1-208 ,2-207, 13-0 , 45-11 , 49-109 - The file MUST be an encrypted document.

    If (byteArr(1) = 80 And byteArr(2) = 75 And byteArr(13) = 33) Or _
        (byteArr(45) = 12 And byteArr(49) = 181) Then
        isCrypted = False
    Else
        isCrypted = True
    End If
End Function
[/vba]

Андрею еще раз спасибо.


Сообщение отредактировал bmv98rus - Вторник, 14.02.2017, 08:01
 
Ответить
СообщениеЭхх, рано радовался. нашлись .PPT файлы и там все по другому . Сижу читаю https://msdn.microsoft.com/en-us/library/cc313106(v=office.12).aspx , плачу :-)

[vba]
Код
Public Function isCrypted(ByVal FileName As String) As Boolean
    Dim fNum As Integer, byteArr(1 To 49) As Byte
    fNum = FreeFile
    Open FileName For Binary Access Read As #fNum
    Get #fNum, , byteArr
    Close #fNum
    
' pptx
'   1-80 ,2-75, 13-33 - The file SHOULD NOT be an encrypted document.
'   1-208 ,2-207, 13-0 - The file MUST be an encrypted document.
' ppt
'   1-208 ,2-207, 13-0 , 45-12 , 49-181 - The file SHOULD NOT be an encrypted document.
'   1-208 ,2-207, 13-0 , 45-11 , 49-109 - The file MUST be an encrypted document.

    If (byteArr(1) = 80 And byteArr(2) = 75 And byteArr(13) = 33) Or _
        (byteArr(45) = 12 And byteArr(49) = 181) Then
        isCrypted = False
    Else
        isCrypted = True
    End If
End Function
[/vba]

Андрею еще раз спасибо.

Автор - bmv98rus
Дата добавления - 13.02.2017 в 14:43
bmv98rus Дата: Пятница, 17.02.2017, 20:11 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Код в предыдущем посте некорректный в отношении PPT. Исправить там уже не могу. Копаю дальше.
 
Ответить
СообщениеКод в предыдущем посте некорректный в отношении PPT. Исправить там уже не могу. Копаю дальше.

Автор - bmv98rus
Дата добавления - 17.02.2017 в 20:11
bmv98rus Дата: Пятница, 10.03.2017, 12:38 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 613
Репутация: 107 ±
Замечаний: 20% ±

Excel 2013/2016
Спустя X дней, пробных запусков и устранения вылезающих проблем, вот такой финальный результат по одному , самому крупному из трех ресурсов

И так как это не первый прогон, то изменений было больше, но я скорее о том, сколько пришлось прелопатить.

Андрей, еще раз спасибо. исходя из цифирок только автоматизация позволила выполнить задачу, а без совета №6 это не возможно.
К сообщению приложен файл: 1241888.png(13Kb)
 
Ответить
СообщениеСпустя X дней, пробных запусков и устранения вылезающих проблем, вот такой финальный результат по одному , самому крупному из трех ресурсов

И так как это не первый прогон, то изменений было больше, но я скорее о том, сколько пришлось прелопатить.

Андрей, еще раз спасибо. исходя из цифирок только автоматизация позволила выполнить задачу, а без совета №6 это не возможно.

Автор - bmv98rus
Дата добавления - 10.03.2017 в 12:38
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Power Point » Пропуск запароленного файла при пакетной обработке. (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!