Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Распаковка архива RAR |
Автор: BlackSun 10.04.19, 19:16 |
Вроде всё указал правильно, но не вижу результата. Ошибки не получаю. Консольное окно распаковки закрывается, файла отчёта тоже не получаю. В чём проблема? <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Dim lRet As Long, Pass As String, sTmp As String, FileName As String, FolderDef As String 'E:\Temp\UnRAR.exe + test.rar FolderDef = "E:\Temp\" FileName = "UnRAR.exe" 'параметры для UnRAR.exe sTmp = " e -p[" _ & "pass" _ & "]" & " test.rar >rep.txt" & Chr(0) lRet = ShellExecute(0, "open", FolderDef & FileName, sTmp, FolderDef & Chr(0), SW_SHOWNORMAL) If lRet <= 32 Then MsgBox "Ошибка выполнения теста!", vbCritical, NamePrg Exit Sub End If Добавлено И ещё: в пароле допускаются символы ASCII[33;122], явно вижу, что если в пароле будут символы "[", "]" то пароль возьмёт из команд. строки неверно, и далее разбор ком. строки пойдёт неверно. Как указать параметры в таком случае? |
Автор: Mikle 10.04.19, 19:34 |
Цитата BlackSun @ если в пароле будут символы "[", "]" то пароль возьмёт из команд. строки неверно, и далее разбор ком. строки пойдёт неверно. Как указать параметры в таком случае? Случайно не в кавычках? chr(34). |
Автор: BlackSun 10.04.19, 20:20 |
кавычки тоже допустимы в пароле |
Автор: Akina 11.04.19, 04:21 |
1) Укажи полные пути для архива и файла отчёта. 2) Если нужно использовать перенаправление стандартного потока - запускай не "unrar.exe", а "cmd.exe" с параметром "/c unrar.exe ...". |
Автор: MIF 11.04.19, 08:29 |
Укажи полный путь к test.rar и rep.txt файлам. |
Автор: MIF 11.04.19, 08:35 |
Цитата BlackSun @ И ещё: в пароле допускаются символы ASCII[33;122], явно вижу, что если в пароле будут символы "[", "]" то пароль возьмёт из команд. строки неверно, и далее разбор ком. строки пойдёт неверно. Как указать параметры в таком случае? Попробуй поставить backslash(\) перед скобками в теле пароля. |
Автор: BlackSun 11.04.19, 09:57 |
Напрямую в Far написал, тоже не работает. Сменил пароль на "123". Что-то не то в формате команды, пишет неверный пароль: UnRAR.exe e -p[123] test.rar WinRAR скачал с оф. сайта, версия 5.70. Добавлено Хех, разобрался. Скобки не нужны: UnRAR.exe e -p123 test.rar Но я-то глянул помощь, а там: p[password] Set password и подумал, что скобки обозначают начало и конец пароля, а теперь сложный пароль вообще не понимает, протестил на примере 1`!@#$%^&*()-+=2. И как я понимаю, из отдельного файла с паролем пароль не может брать, например. Добавлено не сработало на 1\`\!\@\#\$\%\^\&\*\(\)\-\+\=2. Добавлено Сработало "1`!@#$%^&*()-+=2". |
Автор: BlackSun 11.04.19, 11:03 |
Но в ShellExecute не работает "UnRAR.exe e -p123 test.rar >rep.txt"! А когда написал "UnRAR.exe e -p123 test.rar", заработало! ??? |