ConPaste - запрос пароля к архиву из Mulitarc
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Плагины Total Commander

#1: ConPaste - запрос пароля к архиву из Mulitarc Author: MVVLocation: Ростов-Дон PostPosted: Sun Oct 03, 2010 09:44
    —
Раз возник интерес к утилите, выставлю её на суд широкой аудитории.

Написал я её, когда на официальном форуме один из пользователей выложил скомпилированный AHK-скрипт, который предоставляет схожую функциональность. Те, кто знаком с AHK, знают, что скомпилированные скрипты вместе с исполнимым модулем весят килобайт по 250-300, чего, разумеется, моя утилита себе не позволяет. Первую версию я прикрепил к посту на официальном форуме.

Информация о последней версии

Версия: 1.0.1.80
URL: ConPaste на wincmd.ru / ConPaste на totalcmd.net

Требования: Windows 95

Особенности:

+ можно задать заголовок и текст приглашения для запроса строки
+ возможность запомнить введенный текст, чтобы не вводить многократно (пароль хранится во временном файле в слегка зашифрованном виде)
+ параметр для очистки временного файла с сохраненным паролем
+ возможность прервать запущенную задачу по Esc или по таймауту (выдается вопрос)

Командная строка:

Code:
ConPaste[.exe] [<параметры>] "<искомая строка>" <команда запуска архиватора>

Параметры командной строки:

/c"Заголовок окна" - устанавливает заданный заголовок окна
/p"Введите пароль:" - устанавливает текст приглашения
/s[-] - задает начальное положение флага запоминания
/h"Строка" - если хэш этой строки меняется, сохраненный пароль считается устаревшим
/t20 - устанавливает таймаут после последнего вывода перед выводом запроса на завершение задачи


В качестве примера использования приведу строки аддона для архиватора 7-Zip, использующие ConPaste:
Code:
List="ConPaste.exe /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA l {%S} %AQA"
Extract="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA e -y {%S} -scsWIN -- %AQA @%LQA"
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA x -y {%S} -scsWIN -- %AQA @%LQA"
Test="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA t -y {%S} %AQA"
Delete="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA d -w%LQPA -y -r {%S} -scsWIN -- %AQA @%LQA"

А вот строка аддона для архиватора InnoUnp:
Code:
List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -v -m %AQA"


Для очистки файла с сохраненным паролем используется такая команда:
Code:
ConPaste.exe /r
Это может быть полезно, например, если при вводе пароля с включенной опцией запоминания допущена ошибка - после запуска программы с таким параметром при повторном входе в архив пароль будет запрошен опять.

Last edited by MVV on Thu Mar 01, 2012 22:44; edited 15 times in total

#2:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Oct 03, 2010 10:47
    —
Последняя на данный момент версия позволяет задавать заголовок диалога и текст запроса пароля (первая версия использовала искомый в консоли текст). Юникод утилита не поддерживает за ненадобностью (в консоли его отобразить невозможно).


Сегодня (странно, что только сегодня) заметил на официальном форуме апрельский пост, в котором один из пользователей жаловался, что пароль запрашивается по 3 раза, и спрашивал, что можно сделать. Наверное, стоит добавить галочку для отправки той же строки на каждый запрос.


Ага, обновил версию, добавив галочку. Заодно пришлось добавить русскую версию диалога.
Н-да, не сообразил я сразу, что мультиарк запускает архиватор по несколько раз, поэтому галочка не спасает. Sad

Прикрутил сохранение пароля во временном файле. Пароль слегка маскируется, ключ строится на основе хэндлов окна тотала и панели задач, поэтому после закрытия тотала или винды теряется.

#3:  Author: Reflector PostPosted: Mon Oct 04, 2010 22:04
    —
MVV wrote:

Юникод утилита не поддерживает за ненадобностью (в консоли его отобразить невозможно).

А зачем тебе отображать в консоли юникод? Например, в листинге консольной версии 7z я вижу "____________.txt", а когда читаю с консоли в UTF-8, то получаю "次にタレコミを。あなたの.txt", следовательно и при обратном процессе будет то же самое. Другое дело, что сам MultiArc юникод не понимает, как и все распространяемые плагины для 7z, потому надобности действительно нет Smile Вот если бы кто-то подправил сам MultiArc...

#4:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Oct 05, 2010 21:39
    —
Согласен, по идее даже при невозможности отобразить Юникод в консоли он все равно должен передаваться, другое дело что мультиарк его не примет, так что Юникод утилите все равно не нужен. Smile


Добавил параметр /r для очистки сохраненного пароля - например, можно добавить в меню Запуск тотала и использовать, если вдруг при вводе пароля допущена ошибка.

#5:  Author: angry_dogLocation: Питер PostPosted: Wed Oct 20, 2010 13:41
    —
В некоторых случаях после открытия iso.wv по Ctrl+PageDown и копированием по команде F5 содержимого iso.wv в другую директорию, появляется окошко "распаковка cab" с прогресс баром. После чего вылетает ошибка:
"Выполнявшаяся команда 'ConPaste.exe /c\"Image.iso.wv\"\"Enter password\" \"C:\Program Files\24\7-Zip\7z.exe\" x -y -scsWIN -\"D:\Downloads\Album\Image.iso.wv\" @C:\Users\83бD~l\AppData\Local\Temp\$mltwcx\lstAЗBA.tmp, вернула код выхода 259, который больше чем настроенный как нормальный для этой команды. Возможно возникла ошибка. Пожалуйста, проверьте ваши настройки..."
Вылетает не всегда. Почему это случается и как исправить? Спасибо.

#6:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Oct 21, 2010 02:22
    —
1. Что за формат iso.wv?
2. Почему "распаковка cab", если архив другого типа?
3. Без ConPaste вылетает? По идее, ConPaste просто передает мультиарку код возврата архиватора, то есть, скорее всего ошибка возникла именно у архиватора.
4. Мультиарк настраивался самостоятельно, или используется какая-нибудь сборка?

0. Рекомендую включить консоль мультиарка, дождаться повторения ошибки и посмотреть вывод архиватора в консоли - если возникла ошибка, там будет её описание. Так у нас появится шанс ответить на вопрос "Почему это случается" и думать, "как исправить".

#7:  Author: Sasha33 PostPosted: Tue Nov 23, 2010 16:06
    —
а можно вас попросить целиком конфиг для multiarc?
а то что-то не получается заставить ваш плагин работать с 7-Zip 9.20

#8:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Nov 23, 2010 18:26
    —
Sasha33 wrote:
а можно вас попросить целиком конфиг для multiarc?
а то что-то не получается заставить ваш плагин работать с 7-Zip 9.20
Я еще не перешел на 9 версию 7-Zip. Да и, собственно, пока пользуюсь 7z-плагином. А от моей вот аддон:
Code:
[7-Zip]
Description="7-Zip"
; Сигнатуры форматов 7Z, NSIS, ISO, WIM, CHM
ID=37 7A BC AF 27, EF BE AD DE 4E 75 6C 6C 73 6F 66 74, 01 43 44 30 30 31 01, 4D 53 57 49 4D, 49 54 53 46
SkipSfxHeader=1
; Первая позиция для ISO
IDPos=32768, <SeekID>
Extension=7z
; Архиватор 7-Zip
Archiver="%ProgramFiles%\7-Zip\7z.exe"
List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA l {%S} %AQA"
Start="^-------------------"
End="^-------------------"
Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA e -y {%S} -scsWIN -- %AQA @%LQA"
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA x -y {%S} -scsWIN -- %AQA @%LQA"
Test="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA t -y {%S} %AQA"
Delete="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA d -w%LQPA -y -r {%S} -scsWIN -- %AQA @%LQA"
; Степень сжатия Ultra, словарь 48 MB, слово 256 B, непрерывный
Add="%PQA a -mx=9 -mmt=2 -ms -m0=LZMA:a=2:d48m:fb=256 -w%LQPA -y -r {%S} -scsWIN -- %AQA @%LQA"
IgnoreErrors=0
Debug=0
UnixPath=0
SkipDirsInFileList=0
SkipEmptyNames=1
BatchUnpack=1
SearchForUglyDirs=1
(букв n в строке Format0 должно быть ровно 256)

#9:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Aug 23, 2011 12:09
    —
angry_dog wrote:
"Выполнявшаяся команда 'ConPaste.exe /c\"Image.iso.wv\"\"Enter password\" \"C:\Program Files\24\7-Zip\7z.exe\" x -y -scsWIN -\"D:\Downloads\Album\Image.iso.wv\" @C:\Users\83бD~l\AppData\Local\Temp\$mltwcx\lstAЗBA.tmp, вернула код выхода 259, который больше чем настроенный как нормальный для этой команды.

Наконец попался мне архив, с которым я смог воспроизвести подобную ошибку. Причина была банальной - ConPaste ждала 5 секунд после получения последнего консольного вывода от запущенной задачи и завершала работу (я делал это на случай зависания задачи). Код 259 в данном случае был сообщением о том, что задача всё ещё работает.


Выложил версию 1.0.1.72. В ней я сделал возможность задавать вышеупомянутый таймаут, по умолчанию он равен 20 секундам. Но теперь по его истечении ConPaste спрашивает у пользователя, стоит ли завершить задачу. Также можно зажать клавишу Esc для запроса завершения задачи - если надоело сидеть перед зависшим тоталом. Smile При этом ConPaste вернёт код 259, о котором сообщит MultiArc.

#10:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Mar 01, 2012 20:44
    —
Попался мне InnoSetup-архив, на котором ConPaste зависала. Пришлось отлаживать. Ошибка была исправлена, новая версия доступна для загрузки.

ConPaste 1.0.1.80

#11:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Mar 09, 2012 21:44
    —
Потратил больше часа на исследование странного феномена: с последней версией ConPaste архив отображался пустым, хотя в командной строке его содержимое выводилось нормально, и без ConPaste тоже всё работало. Уже и тестовую версию положил вместо обычной, и коды ошибок проверять начал. Кладу предыдущую версию - работает. Обратно возвращаю последнюю - пустой архив. Оказалось, COMODO втихаря запускал последнюю версию в песочнице, и она не могла открыть пайп, поэтому ничего не писала в консоль...

#12:  Author: ABTOP PostPosted: Wed Mar 14, 2012 00:57
    —
А выложи, пожалуйста, полностью секцию для InnoSetup

#13:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Mar 14, 2012 09:51
    —
Code:
[InnoSetup]
Description="InnoSetup"
ID=49 6E 6E 6F
IDPos=<SeekID>
Archiver="%COMMANDER_PATH%\Plugins\Packer\Multiarc\Archivers\InnoUnp\InnoUnp.exe"
List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -v -m %AQA"
Start="^--------------------------------------"
End="^--------------------------------------"
Format0="zzzzzzzzzz  yyyy.tt.dd hh:mm  nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Extract="ConPaste.exe %C /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -e -m %AQA {@%LQ}"
ExtractWithPath="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к дистрибутиву:\" \"Type in a password\" %PQA -x -m %AQA {@%LQ}"
Debug=0
BatchUnpack=1

Только букв n в строке Format0 побольше напиши (в моем аддоне их 144, а вообще по идее можно до 260), я убрал часть, чтобы смотрелось.

#14:  Author: ABTOP PostPosted: Wed Mar 14, 2012 14:40
    —
Благодарю! А на что влияет кол-во символов "n"?
И какие ещё типы файлов поддерживает ConPaste кроме [7z], [bz2], [gz], [ISO], [CAB], [UHA], [InnoSetup]?

В строке List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA l {%S} %AQA" надпись "\"Enter password\"" обязательно нужна, или достаточно оставить только \"Введите пароль к архиву:\" ?

#15:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Mar 14, 2012 15:27
    —
ABTOP wrote:
Благодарю! А на что влияет кол-во символов "n"?

На то, сколько символов из строк, выводимых архиватором в консоль, Multiarc будет включать в имена и пути файлов в архиве. Поэтому число букв n должно быть равно максимальной длине пути в архиве.
ABTOP wrote:
И какие ещё типы файлов поддерживает ConPaste кроме [7z], [bz2], [gz], [ISO], [CAB], [UHA], [InnoSetup]?

Для ConPaste вообще без разницы, с какими архивами работать. Она работает не с архивами, а с архиваторами.

ABTOP wrote:
В строке List="ConPaste.exe /s /h%AQ /c%AWQ /p\"Введите пароль к архиву:\" \"Enter password\" %PQA l {%S} %AQA" надпись "\"Enter password\"" обязательно нужна, или достаточно оставить только \"Введите пароль к архиву:\" ?

Да скорее наоборот. Параметр "Enter password" нельзя убирать ни в коем случае - в нём написана строка, при выводе которой в консоль ConPaste поймёт, что пора спрашивать пароль у пользователя (архиватор 7z.exe при запросе пароля выводит строку Enter password:, архиватор InnoUnp.exe - строку Type in a password:, другие архиваторы - свои строки). А вот /p"Введите пароль к архиву:" необязателен - он лишь содержит текст, отображаемый в диалоговом окне ConPaste. В первом же посте указан синтаксис командной строки.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group