Показать полную графическую версию : SFX Creator 4 Alpha - создаём SFX архивы
Замечательная программа! Вот если бы она еще переменную %CD% понимала, цены б ей не было... А так, чисто для внутреннего потребления автора...
А так, чисто для внутреннего потребления автора... »
Не пользуйтесь SFX Creator, если не умеете читать файл справки...
Да уж...2дня читал.Так и научился. Программа понимает только абсолютный путь, относительный, нет, в отличие от rar. Все переменные, это абсолютные пути.
Программа понимает только абсолютный путь, относительный, нет »
Относительно какой папки, SFX Creator должен по вашему мнению "понимать" относительные пути? И про что вообще идёт речь?
Когда вы для начала перестанете думать, что перед вами гадалка, которая понимает всю ситуацию из того бесполезного предложения с указанием вашей переменной - может и получите конкретный ответ и решите возникшую трудность.
в отличие от rar »
Удалите SFX Creator и пользуйтесь дальше WinRAR, в чем проблема?
Все переменные, это абсолютные пути »
Прям как Кличко сказанули :up
Прошу прощения, просто бьюсь 3 день, нервы)Нужно, чтобы архив распаковался в текущей папке.Там, где я его запущу.В раре, это к примеру /... Атут никак, по всякому пробовал.
Нужно, чтобы архив распаковался в текущей папке.Там, где я его запущу »
В справке читали страничку "Переменные"? Там же четко написано:
$EXEDIR — папка, откуда запущен SFX архив.
В раре, это к примеру »
Если собрались использовать SFX Creator, то забудьте все остальные программы, которые позволяют создавать SFX архивы, у каждой программы свои особенности, ничего общего у WinRAR и SFX Creator нет
А по поводу того, что вы "пробовали и так и сяк" - читайте документацию к SFX Creator, там рассказывается, что и как/где можно указывать
Я пробовал эту переменную, но почему то не получилось.Нужно, чтобы в текущей директории создать папку, скопировать файлы, и запустить исполняемый. Когда я использую абсолютный путь, все нормально.Когда подсьавляю $EXEDIR программа выдаёт ошибку, не могу произвести запись, и зацикливается. Снимается только через диспетчер
Относительно какой папки, SFX Creator должен по вашему мнению "понимать" относительные пути? »
Как и обычно — относительно текущего каталога текущего диска. И надо полагать, он их и понимает, если только Вы не предпринимали специальных усилий по запрету данного поведения :).
$EXEDIR — папка, откуда запущен SFX архив. »
Тут, надо полагать, есть проблема с пониманием, поскольку «папка, откуда запущен архив» воспринимается именно как «текущий каталог», но судя по имени переменной читать надо именно как «папка, в которой находится/содержится архив». Во всяком случае, я воспринимаю русский текст пояснения именно так.
Я пробовал эту переменную, но почему то не получилось. »
Покажите, как именно Вы пробовали. Пока же в четырёх Ваших сообщениях идёт, простите, рассуждение о сферическом коне в вакууме.
.В раре, это к примеру /... »
Это ссылка на корневой каталог :). И опять нет кода.
Как и обычно — относительно текущего каталога текущего диска. И надо полагать, он их и понимает, если только Вы не предпринимали специальных усилий по запрету данного поведения »
Весь вопрос в том, что сам пользователь изначально не пояснил, где SFX Creator "должен понимать" относительные пути: в самом интерфейсе при добавлении команд/файлов в проект (относительно папки SFX Creator/относительно папки проекта и т.д.), или же непосредственно при запуске созданного SFX архива - относительно папки, откуда запущен SFX архив
Про путь стало понятно только после его последнего сообщения, где говорится о функционале созданного архива
По поводу запретов - ничего такого в коде я не прописывал, и это не зависит от SFX Creator, а зависит от NSIS, в момент исполнения SFX архива NSIS не понимает относительных путей для команд распаковки файлов, а что касается удаления файлов/исполнения приложений - понимает, поэтому, чтобы не путать пользователей - в справке ничего не сказано о поддержке относительных путей в момент исполнения SFX архива
Тут, надо полагать, есть проблема с пониманием, поскольку «папка, откуда запущен архив» воспринимается именно как «текущий каталог», но судя по имени переменной читать надо именно как «папка, в которой находится/содержится архив». Во всяком случае, я воспринимаю русский текст пояснения именно так. »
В справке SFX Creator на страничке со списком переменных сказано:
SFX Creator поддерживает преобразование переменных директорий в абсолютные пути.
Мне кажется, исходя из этого, пользователь должен понять, что все перечисленные ниже переменные директорий принимают вид абсолютных путей, а не каких-то составляющих из пути
Когда подсьавляю $EXEDIR программа выдаёт ошибку »
Значит добавляете эту переменную к какому-то пути
Я вам не смогу помочь, если не увижу скриншотов с командами, либо предоставьте скриншоты, где видно полностью указанные вами данные в полях, либо предоставьте сразу файл проекта, либо разбирайтесь сами
Весь вопрос в том, что сам пользователь изначально не пояснил, где SFX Creator "должен понимать" относительные пути »
Именно так!
Спасибо за подсказки, во всем разобрался, все работает. Приношу извинения, программа замечательная.
Что то ничего у меня не получается... Все с директорией нормально. Но теперь не могу запустить приложение. Задача такая, нужно распаковать файлы в папку, запустить экзешник, после завершения стереть файлы в папке.Все нормально, до запуска батника с cmd.exe /c del /f /q/a s r h *.* Сам батник работает, а из программы не хочет. Хотя с указанием абсолютных путей все было замечательно. А вот экзешник запускается... И кмд запускается, и из батника
, и просто, а вот с ключами нет. Подскажите плиз, а то уже мочи нет)
Задача такая, нужно распаковать файлы в папку, запустить экзешник, после завершения стереть файлы в папке »
Ещё раз прочитайте страничку с переменными, или мне вам персонально о каждой переменной рассказывать?
$TMPDIR
Временная директория при работе SFX архива, все файлы, которые распакованны в данную директорию будут удалены после всех действий вашего архива
Полезно, если вы создаёте распаковщик инсталлятора
Внимание! Не используйте данную переменную в поле "Директория для установки"
Не нужно создавать нелепую структуру SFX архива с bat-файлами, все указанными действия вы можете проделать в SFX Creator разными способами
Способ первый я уже вам написал:
1. Распаковываете файлы/программу и т.д. в $TMPDIR (только не ставьте данную переменную в поле "Директория установки")
2. Запускаете программу из $TMPDIR
3. Все файлы в этой папке будут автоматически удалены
И еще, если бы вы прочитали весь файл справки, то в примере проекта Перепаковка драйверов NVIDIA увидели бы пример использования переменной $TMPDIR и не пришлось бы "париться", создавать всякие левые батники и писать сюда в том числе
Способ второй (это так, чисто для ознакомления с возможностями SFX Creator):
1. Предположим, что временная папка с файлами и с приложением у вас имеет путь $TEMP\TEST
2. Добавляете команды на распаковку/запуск приложения с указанием данного пути
3. Идём в диалог Настройка проекта, нажимаем кнопку двойной стрелки, открывается диалог Порядок выполнения команд
4. Ставим галочку, выбираем пункт Файловые операции и опускаем ниже пункта Выполнение приложений
5. Закрываем оба диалога и открываем через выпадающий список "Дополнительные возможности" (в главном окне SFX Creator) пункт Управление файловыми операциями
6. Из выпадающего списка выбираем пункт Удалить файл(ы)
7. В поле Объект прописываем наш путь $TEMP\TEST с указанием маски всех файлов: $TEMP\TEST\*.*
Есть, конечно, и третий способ, это использовать собственные функции NSIS и написать все команды самостоятельно, но не вижу смысла этого делать, т.к. "за вас уже всё придумано"
Пользуйтесь переменной $TMPDIR, она была создана именно для таких целей, чтобы "подчистить за собой"
Подскажите плиз, а то уже мочи нет) »
Коллега, Вы читать умеете? Процитирую:
Я вам не смогу помочь, если не увижу скриншотов с командами, либо предоставьте скриншоты, где видно полностью указанные вами данные в полях, либо предоставьте сразу файл проекта, либо разбирайтесь сами »
Директорию temp, использовать не представляется возможности. Программа ее не видит. Она понимает, на уровень вверх. Скриншоты... Ну вот, когда все получается. Первый батник выставляет атрибуты, запускается программа, 2 батник, очищает директорию по завершении. Все работант отлично, если указать абсолютные пути. Но программа может стоять на дичсе С, на Д, Е и т.д. Если указать $EXEDIR, то батники перестают работать, так же как и файловые операции. В общем и целом вопрос практически решен, я сделаю несколько архивов для разных дисков, программа должна будет находится в корне. Но как то это громоздко)
Коллега, Вы читать умеете? Процитирую: »
да тут и скриншотами не обойтись, задание то, оказывается, совсем другое, а не то, что я уже "нагадал" :biggrin:
Директорию temp, использовать не представляется возможности. Программа ее не видит. Она понимает, на уровень вверх. »
А чем, собственно, отличается директория temp от других папок на диске? :o
Первый батник выставляет атрибуты, запускается программа, 2 батник, очищает директорию по завершении »
Я читаю это предложение как "бесполезный текст без полезной информации для решения проблемы"
Все работант отлично, если указать абсолютные пути. Но программа может стоять на дичсе С, на Д, Е и т.д. Если указать $EXEDIR, то батники перестают работать, так же как и файловые операции »
Вам на будущее: чтобы люди поняли всю суть вашей проблемы и что в итоге вам необходимо сделать, нужно подробно описывать всё в мельчайших деталях
С первого вашего сообщения я думал, что вам необходимо просто распаковать какие-то файлы, запустить приложение и затем удалить всё это. А тут оказывается, вам нужно распаковать файлы в папку какой-то программы, там выполнить приложение (которое распаковали?) и затем подчистить за собой.
С директорией $EXEDIR и с подстановкой нужных дополнительных путей (в зависимости от вашего приложения и структуры каталогов) - вы сможете сделать нужный вам SFX архив, если положите ваш готовый SFX архив в одну папку с программой.
Так же можете попробовать определить папку вашей программы через реестр (возможность Установка по ключу в реестре), если приложение оставляет запись о себе в реестре, либо включить опцию в главном окне, чтобы пользователь сам указал папку, куда установлено ваше приложение, читайте про переменную $INSTDIR
Как только научитесь грамотно составлять вопросы о помощи - приходите, а играть в гадалку и тратить своё время описывая те действия, которые вам не нужны (потому что вы не можете толком всё объяснить) - не имею желания
Но программа может стоять на дичсе С, на Д, Е и т.д. »
Если ваша программа - это игра (судя по гуглу), то скажу больше, лично я никогда не устанавливаю игры в папку по-умолчанию, которая указана в программе установке, я собираю все игры в своей одной папке, это вам на заметку, что не только имя диска может меняться. Вот, попробуйте угадать, куда вы свои файлы будете распаковывать, если я скачаю ваш архив? В жестко прописанный каталог? На всех дисках? :up
Так же можете попробовать определить папку вашей программы через реестр » Прогамма не оставляет записей в реестре. Но , как я сказал ранее, проблема в общем решена. В жестко прописанный каталог? » Я укажу, куда пользователю ставить игру, и архив распакуется, туда, куда надо) Это временная мера, конечно нас быстро раскусят, но это не страшно. Это делается для того, чтобы конкуренты, не могли в течении пары дней присвоить наши наработки. Большое спасибо за помощь. Удачи в продвижении проекта.
Интересно, у кого-нибудь хватит терпения перевести SFX Creator на английский язык вместе с файлом справки, если будет многоязыковая поддержка? :teeth:
http://s020.radikal.ru/i701/1507/4c/2db745de8bf9.jpg
Почти 1000 строк - это только элементы с подсказками в диалогах (это много для программы?)
Правда, языки с символами юникода поддерживаться не будут... :sorry:
добрый вечер использовал фаил BassPlayMP3.nsh выскакивает окошко
невозможно открыть фаил для записи
подскажите что не так если можно на примерах
использовал фаил BassPlayMP3.nsh выскакивает окошко
невозможно открыть фаил для записи »
Ошибок не должно быть, т.к. в скрипте всё прописано правильно
Может, вы где-то в другом месте в вводе данных ошиблись? Попробуйте убрать функцию для воспроизведения из списка выполняемых команд (в диалоге "Выполнение своих NSIS функций") и проверьте наличие ошибки
Если ошибка всё-равно появляется, предоставьте файлы для анализа ошибки, без них я вам мало чем могу помочь
1. Для начала убедитесь, что у вас последняя версия SFX Creator и всех второстепенных файлов (Меню SFX Creator => Проверить обновления)
2. Добавьте в архив следующие файлы:
а) Файл проекта (Настройки проекта => нажимаем кнопку с иконкой папки, после открытия папки берём файл "Project.ini")
б) Если вручную редактировали файл BassPlayMP3.nsh (чего по инструкции делать не нужно было) - то его тоже добавляете в архив
в) файл скрипта <Папка SFX Creator>\NSIS\Source.nsi
3. И ссылку на архивчик сюда, заливайте архив на rghost.ru (http://rghost.ru/)
Только не добавляйте в архив лишних файлов, т.к. я сейчас с мобильного инета - не особо трафик хочется тратить :)
Пока, думаю, этого достаточно
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC