![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Скрипты Inno Setup. Помощь и советы [часть 5]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Отправлено: 03:49, 21-05-2012 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать как в isdone сделать разбивку на тома?
|
Отправлено: 21:36, 31-10-2012 | #1191 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать insombia, как человек вроде-бы уже опытный, мог-бы и знать, что библиотека isdone не предназначена ни для сжатия, ни для разбития на тома. Она используется исключительно для распаковки архивов, упакованных внешними архиваторами, не более. И там есть функция, которая выводит диалог запроса следующего диска, если ты об этом. Один из параметров этой функции - любой файл, который должен лежать на запрошеном диске, и если этот файл уже есть в наличии, то соответственно, запроса следующего диска не будет, ввиду отсутствия таковой необходимости.
Хотя, чего сильно распинаться? Вместе с этой библиотекой распространяется справка, в которой все ее функции удивительно подробно и понятно расписаны. |
------- Отправлено: 15:36, 01-11-2012 | #1192 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
Так нельзя: if FileList[0] = '' then FileList[0] := '*.*'; ... if FileList[0] <> '' then for i := 0 to GetArrayLength(FileList)-1 do if GetArrayLength(FileList) = 0 then begin SetArrayLength(FileList, 1); FileList[0] := '*.*'; end; ... if GetArrayLength(FileList) > 0 then for i := 1 to GetArrayLength(FileList)-1 do Цитата Gnom_aka_Lexander:
|
||
Отправлено: 18:07, 01-11-2012 | #1193 |
Ветеран Сообщения: 510
|
Профиль | Отправить PM | Цитировать Gnom_aka_Lexander да я уже нашел,просто забыл удалить сообщение,но все равно спс
|
Отправлено: 18:08, 01-11-2012 | #1194 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать El Sanchez, спасибо за правку! я понял своё косячище
теперь ошибка не вылезает! ![]() вот только с этой строкой ( for i := 1 to GetArrayLength(FileList)-1 do ... ) попытаться извлечь 2 файла из архива ['half-life high definition.gcf', 'se15\counter-strike.gcf'], то извлечётся только второй фаил 'se15\counter-strike.gcf' с индексом 1, поэтому ( for i := 0 to GetArrayLength(FileList)-1 do ... ) приводит к нужному результату ====== с FileList[0] := '*.*' извлекаются только файлы лежащие в корне архива. Те, напимер, 'se15\counter-strike.gcf' не распакуется получается если массив пустой то делать вообще ничего не надо (в смысле никакие параметры архиватору не нужны) только если не пустой нужен код: if GetArrayLength(FileList) > 0 then for i := 0 to GetArrayLength(FileList)-1 do begin s7cmd := s7cmd + ' -i'; if RecurseFolders then s7cmd := s7cmd + 'r'; s7cmd := s7cmd + '!"' + RemoveQuotes(FileList[i]) + '"'; end; извлекаем все файлы с подкаталогами. Те реально всё - SevenZipExtractArchive(szStatus.Handle, 'C:\hl1.VALVE', [], False, True, '', True, 'c:\setup', False, CallbackAddr('ArchiverCallbackProc')); извлекаем нужные файлы : SevenZipExtractArchive(szStatus.Handle, 'C:\hl1.VALVE', ['half-life high definition.gcf', 'se15\counter-strike.gcf'], False, True, '', True, 'c:\setup', False, CallbackAddr('ArchiverCallbackProc')); Проверено. Работает. ![]() хотя прошу желающих на всякий случай потестить вот тестовый архив: http://sendfile.su/700617 ======== функция целиком: PS: блин возможности у кода суперские любой параметр ком.строки можно загнать в функцию (при необходимости настраивать через входные параметры) и ещё куча функций (типа SevenZipGetArchiveType или SevenZipCheckArchive) hl1.VALVE есть 7зип архив(не sfx). я только поменял расширение "7z" на имя всем известной конторы (для понта) |
Последний раз редактировалось Johny777, 01-11-2012 в 22:16. Отправлено: 21:12, 01-11-2012 | #1195 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
Цитата Johny777:
|
||
Отправлено: 22:44, 01-11-2012 | #1196 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать El Sanchez, если в пути есть русские символы, то 7зип архив не извлекается. Можно ли это исправить?
|
Отправлено: 20:26, 03-11-2012 | #1197 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, комстрока? возможна проблема в кодировке, установщик работает с системной СР1251, а комстрока с ДОС кодировкой СР866
|
------- Отправлено: 20:32, 03-11-2012 | #1198 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, вот уж не думал что тебя, камрад, придется отправлять в шапку темы
Твой случай function AnsiToDos |
------- Отправлено: 21:11, 03-11-2012 | #1199 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, дык одмин одмину друг, товарисч и мануал!
![]() кстати даже если прогу поставить корректно в путь с пробелами и русскими буквами то не факт что она будет работать - тот же самый косяк может оказаться внутри проги Формат 8.3 жив и здоров (8 символов на имя, 3 на расширение, толькр 10 цифр и 26 англ букв) |
------- Отправлено: 21:32, 03-11-2012 | #1200 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
Inno Setup | tradeukraine | Вебмастеру | 3 | 13-06-2006 20:39 |
|