| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как узнать установлен на архиве пароль? |
| Автор: Eleet 9.5.2005, 01:08 |
| Необходимо узнать стоит ли на архиве пароль при обращении к архиву из приложения, если стоит, то необходимо выводить окно запроса пароля. Работа с архивом производится через консоль,поэтому перехват функций Windows не очень подходит. |
| Автор: Alex 9.5.2005, 09:36 |
| Перенесено из раздела Дельфи |
| Автор: Eleet 10.5.2005, 00:00 |
| Поясняю : Архив WinRAR, распаковщик используется этот же, т.е. работа идёт с самим WinRar'ом только из командной строки, вопросы по поводу установлен ли сам WinRar уже решены, теперь стоит вопрос как узнать стоит ли на данном архиве пароль? |
| Автор: kucik 10.5.2005, 01:29 | ||
| Немножко поправлю Eleet'a: Используется архиватор WinRAR, а точнее его консольная версия .. модуль Rar.exe Значится при помощи обращения к этому файлику с определёнными параметрами можно добится архивации и разархивации! Нужно определить защищён ли архив паролем, так как при разархивации (если на архиве стоит пароль а мы его не вводим) происходит простой: Привожу код запуска RAR'a (обрезан):
Поэтому надо как то обратится к архиву (непосредственно до архивации) и узнать стоит ли на архиве пароль, чтобы как только пользователь выбрал архив ... его любезно попросили ввести пароль! Я думаю понятно изложил проблему! Спасибо за ответы!!! |
| Автор: Alex 10.5.2005, 02:33 | ||||
Плохо товарищи читаете замечательный файл Rar.txt, а в нем описан замечательный параметр:
А еще в нем описаны коды возврата:
И если вы попытаетесь обратиться к файлу, защищенному паролем с ключом -p-, то вам вернут код возврата 3. Дальше я думаю, объяснять не стоит. PS: Если решили работать с rar через консоль, то Rar.txt должен стать вашей настольной книгой. |
| Автор: kucik 10.5.2005, 16:18 | ||
| Пасибо Alex! Насчёт кода возврата не подумал Только где его ловить этот код возврата? Выполнение этой строчки нам даёт логическое значение
т.е. если приложение завершилось, значит Result = True иначе False ... |
| Автор: Alex 10.5.2005, 16:52 |
| http://vingrad.ru/DELPHI-DLP-000765 |
| Автор: kucik 10.5.2005, 20:31 | ||||||
| Спасибо Alex! Вот то, что вышло у меня
Вызываю следующим образом (напишу, дабы у других вопросов не возникло):
Вопрос исчерпан! Всё вроде работает! Только остаётся вопрос по консоли RAR'a ... Как сделать так, чтобы не извлекая из архива его содержимое определить стоит ли пароль или нет? Так как если применить команду
то если на архиве не стоит пароль, то содержимое архива будет извлеченно! |
| Автор: kucik 11.5.2005, 00:13 | ||
| Возник ещё один вопросик ... В RAR'e есть такой ключик -ierr - перенаправление всех сообщений на стандартное устройство ошибки. Как принять все эти сообщения? Прочитал эту тему http://forum.vingrad.ru/index.php?showtopic=25023&unread=1&hl=stderr, но моя проблемма немного в другом (на мой взгляд), т.к. в моём случае информация уже выводится на стандартное устройство ошибки!? Попробовал такой вариант:
... он не проходит, BytesRead всегда 0 Alex Help Please!!! Thanks! |
| Автор: Alex 11.5.2005, 16:09 |
| Модератор: Пожалуйста, один топик - один вопрос. Тема закрыта. |