Снимите PDF защиту паролем, зная пароль WINDOWS - PullRequest
0 голосов
/ 03 июня 2019

Я хотел бы сделать что-то похожее на Снятие защиты паролем PDF, зная пароль , но в Windows. У меня есть папка с несколькими PDF-файлами, которые имеют один и тот же пароль, который я знаю. Я хотел бы удалить пароль и перезаписать исходные файлы (не волнуйтесь, мои данные являются копией другой папки).

Я думаю использовать Autohotkey и создать скрипт для открытия файла, вставить пароль, нажать Enter, нажать Ctrl + P, нажать Print as PDF, сохранить как исходное имя файла, закрыть Edge (что я и сделал) m, чтобы открыть файлы PDF), а затем перейдите к следующему файлу в папке.

Я, честно говоря, не очень хорошо знаком с AHK и буду признателен за любую помощь в том, каким должен быть код.

Спасибо!

Редактировать: Вот некоторый код, который я пробовал, но, похоже, он не работает.

^+q::
Loop %A_WorkingDir%\*.pdf
sleep 10000
Send, PASSWORD
sleep 2000
Send,  {Enter}
Send, ^p
Click 105,694
WinClose, A
Return

1 Ответ

0 голосов
/ 03 июня 2019

При циклическом просмотре файлов (используя файловый цикл, который у вас есть), он фактически не открывает их, а дает вам доступ к его свойствам на уровне ОС, таким как путь, имя и системные свойства. Вы можете использовать эту информацию для открытия каждого из них, используя Run - что-то вроде Run , %A_LoopFileLongPath%. Обратите внимание, что вам может потребоваться установить Edge в качестве средства просмотра PDF по умолчанию, если это еще не сделано.

В настоящее время ваш цикл выполняет только строку под ней, что составляет 10 секунд. спать. У вас есть 2000 PDF-файлов? Это примерно 5,5 часов сна, прежде чем двигаться дальше. ;) Если вы хотите выполнить более одной строки, заключите ее в фигурные скобки { }, например:

Loop , 1000
{
    ; stuff
}

Оттуда я бы рассмотрел использование WinWaitActive вместе с возможно ControlSend вместо Sleep и, возможно, Send. Это сделает ваш сценарий более устойчивым и может также занять меньше времени (при условии, что 10 с - верхняя граница). Если это вообще возможно, я бы также не рекомендовал использовать клики, так как это иногда может быть проблематично (иногда вы должны отправить его несколько раз за один клик, иначе местоположение может измениться). Вы можете определенно заставить его работать без этих предложений, просто может потребоваться больше проб и ошибок.

Также может быть хорошей идеей создать способ приостановить выполнение сценария, если это необходимо, поскольку для обработки 2000 файлов может потребоваться некоторое время.

Справочная документация превосходна и показывает правильный синтаксис и примеры. Я бы рекомендовал проконсультироваться с каждой из команд.
https://www.autohotkey.com/docs/AutoHotkey.htm

...