PDA

Показать полную графическую версию : SFX Creator 4 Alpha - создаём SFX архивы


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

K.A.V.
16-08-2012, 12:31
Скрипт распаковки файлов в определённую директорию »


SetOutPath "$INSTDIR"
File /r "C:\Users\admin\Рабочий стол\TEST\*.*"


Распаковать все файлы из папки TEST на рабочем столе в директорию $INSTDIR

Limonica
16-08-2012, 13:18
Нет это не совсем подходит, поскольку всё равно сначало идёт распаковка, но всё равно спасибо. В идеале должно было выглядеть так:

1. Проверка на месте ли файл, если на месте то идёт установка, если нет заканчивает свою работу.
2. На случай если файл отсутствует, только после этого файлы распаковываются, заносятся значения в реестр, запускается исполняемый файл.

Можно ли это реализовать, именно в этой последовательности?

K.A.V.
16-08-2012, 13:33
если на месте то идёт установка, если нет заканчивает свою работу »
На случай если файл отсутствует, только после этого файлы распаковываются »
Вы определитесь, что делать при отсутствии файла...

В первом пункте вы пишите, если файла нет - закрывать инсталлятор
Во втором вы пишите, если файла нет - продолжаем работу

Limonica
16-08-2012, 13:51
Ой небольшая ошибка, правельный второй вариант =) , вот таким способом:

IfFileExists "$INSTDIR\test.exe" 0 NoFile

Quit

NoFile:
........
........

Limonica
16-08-2012, 14:17
Limonica, значит на днях выпущу ещё одно обновление, с добавлением данного переключателя, так сказать, чтобы было всё официально »
Ждёмс =)

Limonica
16-08-2012, 14:34
Будьте добры, покажите как должна выглядеть команда переименования файла?

K.A.V.
16-08-2012, 14:41
Будьте добры, покажите как должна выглядеть команда переименования файла? »

Rename "$INSTDIR\Старое имя.exe" "$INSTDIR\Новое имя.exe"

Если конечная директория будет отличаться от начальной, то файл будет перемещен

Limonica
16-08-2012, 16:06
вопрос, почему при использовании команды sc config test displayname= "Hello World" в командной строке Windows имя службы изменяется сразу, а при ручной замене этого параметра или использовании скрипта WriteRegStr, только после перезагрузки, хотя вреестре все значения поменялись, служба в момент переименования неактивна. SC использует какойто особенный алгоритм и есть ли в NSIS что то подобное

K.A.V.
16-08-2012, 16:34
а при ручной замене этого параметра или использовании скрипта WriteRegStr, только после перезагрузки »
Возможно, система обновляет информацию о службах после перезагрузки, если изменения были сделанны именно данным способом, честно говоря, не задавался данным вопросом и ответа не знаю

есть ли в NSIS что то подобное? »
Попробуйте NSIS Simple Service Plugin (http://nsis.sourceforge.net/NSIS_Simple_Service_Plugin)

Limonica
16-08-2012, 16:54
При использовании этого плагина, происходит ошибка при запуске уже собранного распаковщика, на моменте выполнения команды:
SimpleSC::InstallService test test

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

K.A.V.
16-08-2012, 17:09
происходит ошибка при запуске уже собранного распаковщика »
Там же ниже написаны примеры...Вы мало параметров передаёте плагину...

SimpleSC::InstallService "MyService" "My Service Display Name" "16" "2" "C:\MyPath\MyService.exe" "" "" ""

Limonica
16-08-2012, 17:35
Хмм, в таком формате, даже не создаёт службу:
SimpleSC::InstallService "service" "TEST" "110" "2" "%ProgramFiles\test\test.exe" "" "" ""

K.A.V.
16-08-2012, 17:53
Откуда вы взяли цифру 110?
Допустимые значения:


1 - SERVICE_KERNEL_DRIVER - Driver service.
2 - SERVICE_FILE_SYSTEM_DRIVER - File system driver service.
16 - SERVICE_WIN32_OWN_PROCESS - Service that runs in its own process. (Should be used in most cases)
32 - SERVICE_WIN32_SHARE_PROCESS - Service that shares a process with one or more other services.
256 - SERVICE_INTERACTIVE_PROCESS - The service can interact with the desktop.



"%ProgramFiles\test\test.exe


Либо добавьте символ % в конец переменной, либо замените первый процент на символ NSIS переменной


Читайте внимательно описание плагина

Limonica
16-08-2012, 20:04
Все получилось, большое спасибо.

Кстатие 110 в шестнадцатиричной оказалось 272 в десятеричной.

GLUM890
21-08-2012, 00:13
Правильно ли я понял, чтобы сделать возможность выбора компонентов перед распаковкой, нужно добавить свой NSIS скрипт? Большое спасибо за ответ.

K.A.V.
21-08-2012, 00:46
GLUM890, нет...
Вам необходимо:

1. Добавить файлы в проект
2. Зайти в диалог "Управление проектами"
3. Нажать иконку "Подключение графического интерфейса" (рядом с большой кнопкой сохранениея проекта)
4. В главных настройках графического интерфейса отметить галочки "Задействовать UI оболочку" и "Выбор компонентов"
5. Нажать на радиокнопку "Компоненты"

И там далее, создать необходимые вам компоненты и "раскидать" файлы и команды по компонентам
Если файлы/команды не отнести к созданным компонентам, то не добавленные данные будут обработаны после обработки всех компонентов

alert30
22-08-2012, 10:53
K.A.V., в этой версии, есть функция, что-то типа вот такое? Не обращаю внимание к красно-прямоугольным обозначением.
http://savepic.su/2317003m.png (http://savepic.su/2317003.htm)

K.A.V.
22-08-2012, 11:16
K.A.V., в этой версии, есть функция, что-то типа вот такое? »
Не понял, что вы имеете ввиду...
Изменить текст или вам нужно отобразить диалог выбора каталога??
Или вам нужно картинку слева отобразить?

alert30
22-08-2012, 11:19
K.A.V., чтобы пользователи смогли ставить галочку, какой ярлык создаем. На скриншоте написано: "Ярлыки программы", и пользователь сам думает, какой ярлык впишем/создаем: в меню Пуск, на рабочем столе, в панели быстрого запуска или все трое. А в этой SFX Creator не могу найти. :(

P.S. Скриншот не мой.

K.A.V.
22-08-2012, 11:26
K.A.V., чтобы пользователи смогли ставить галочку, какой ярлык создаем »
SFX Creator не поддерживает отображение "собственных страничек"

Можно только принудительно создать ярлыки без запроса пользователю




© OSzone.net 2001-2012