проблемма с Shell

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

проблемма с Shell

Сообщение НиколайП » 11.02.2006 (Сб) 0:53

подскажите в чём я туплю :( .................

Код: Выделить всё
Dim RetVal
Dim filezip As String
filezip = App.Path & "\obr\555.zip"

RetVal = Shell("C:\Program Files\WinRAR\WinRAR.exe" & " e" & filezip & "  *.xls", vbNormalFocus)

выскакивает сообщение : Архивы не найдены

из справки по архиватору - работа с командной строкой
Пример:

WinRAR e *.rar *.doc

В данном примере будут извлечены в текущую папку все файлы *.doc из всех находящихся в текущей папке архивов RAR

и ещё там указанно что работает с архивами и RAR и ZIP, только необходимо явно указывать расширение архива.

:( :( :(

Vinechka
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 381
Зарегистрирован: 10.05.2005 (Вт) 4:07
Откуда: Москва

Сообщение Vinechka » 11.02.2006 (Сб) 0:58

после буквы e перед именем файла откуда экстрактим пробела не должно быть? :roll: Может оно...

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 11.02.2006 (Сб) 8:01

пробовал по разному, перенёс файл архива в директорию к WinRAR.exe , всё равно не прокатывает :(

Dim RetVal
Dim adr As String

adr = "C:\Program Files\WinRAR\WinRAR.exe e 555.zip *.xls"
MsgBox (adr)
RetVal = Shell(adr, vbNormalFocus)

MsgBox выдаёт адрес правильно, но ошибка опять таже :Архивы не найдены
:( :( :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.02.2006 (Сб) 8:25

Полный путь к архиву укажи...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 11.02.2006 (Сб) 9:06

GSerg писал(а):Полный путь к архиву укажи...

извини, может я что то не понял, это разве не полный путь:
filezip = App.Path & "\obr\555.zip"

?
я уже и так пробовал:
filezip =C:\Documents and Settings\User\Мои документы\VB\laguna\1\obr\555.zip

но тоже не проходит :( , да и не приемлемо это, негоже пользователя ограничивать в выборе папки установки программы .........

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.02.2006 (Сб) 10:38

И в кавычки возьми его...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 12.02.2006 (Вс) 13:15

пришлось создавать временную папку на диске С ..........
а в таком варианте App.Path & "\obr\555.zip так и не заработал ... :(

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 12.02.2006 (Вс) 13:29

Николай,
Код: Выделить всё
Dim RetVal
Dim adr As String

adr = "C:\Program Files\WinRAR\WinRAR.exe e " & """" & App.Path & "\555.zip" & """ *.xls"
MsgBox (adr)
RetVal = Shell(adr, vbNormalFocus)

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 12.02.2006 (Вс) 13:56

большое спасибо Amed , я видать запарился с кодом,обрати внимание на время когда начинал эту тему, и выпустил из виду "двойные кавычки" :) , но пошёл другим путем и в результате получил желаемое, правда пришлось немного кода добавить :) , создать временную папку, разархивировать файл а затем удалить эту папку ...

но тем не менее , ещё раз БОЛЬШОЕ СПАСИБО тебе за подсказку и всем кто принимал участие в этом топике !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 11

    TopList