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.
22-09-2012, 16:24
но впоследствии при деинсталляции этой проги (созданным же в проекте модулем удаления) реестр никак не подчищается.
Как можно удалить хотя бы ту ветку что я импортировал? »
В данный момент никак. Деинсталлятор пока что не имеет настроек удаления, в следующей версии я уже планировал добавить такие же команды в деинсталлятор

Как сделать такое для основного исполняемого файла »
Вы имеете ввиду при создании ярлыка к сторонней программе??
Если да, то в данный момент только через ручное редактирование файла проекта

Второй вопрос: Ярлыки и папки с ярлыками, созданные в меню "Пуск" через диалог - Дополнительные возможности - Добавить ярлык не удаляются созданным программой деинсталлятором в W7x64 »
Возможно моё упущение, т.к. с версией 2.6 чуток торопился, перепроверю позже

Третий вопрос: какой командой запускать msi файл на выполнение, для страницы компонентов, например xnafx40_redist.msi. »
Сначала добавляете исполнение приложения через "Дополнительные возможности", затем просто относите нужную вам команду в необходимый компонент на страничке Компонентов


1. Цель - после получения архива, и его запуска он распаковывается в папку, которую выбирает сам пользователь »
Читаем файл справки, очень полезная информация в нём содержится
В главном окне SFX Creator не видели такую галочку с текстом "Предоставить выбор пользователю"???

После распаковки и установки файла блокировки (см. п.3), на папку с распакованным файлом нужно установить пароль »
Сторонее ПО вам в помощь на установку паролей на папки, средствами операционной системы устанавливать пароли на папки невозможно

Limonica
22-09-2012, 17:48
У готового инсталлятора необходимо изменить манифест, как это сделать если при добавлении или изменения в нём (манифесте) данных выскакивает ошибка NSIS.

K.A.V.
22-09-2012, 19:04
Limonica, ошибка NSIS возникает потому, что вы вносите изменения в тело EXE-файла, а т.к. NSIS проверяет контрольную сумму, изменять EXE файл после компиляции не нужно...

Вы, конечно же, можете внести изменения в инсталлятор и отключить проверку контрольной суммы, но при повреждении архива - вы не получите никаких уведомлений от NSIS

Если для вас это не критично (проверка контрольной суммы инсталлятора), то сделайте следующее:

1. В главном окне SFX Creator выберите переключателем режим отладки "Только исходники"
2. При появлении окна "Режим отладки" нажмите "Главный исходник"
3. Откройте выделенный файл в проводнике, Вставьте строку CRCCheck off
4. Сохраните файл, в окне режима отладки нажмите кнопку "Компилировать"

Limonica
22-09-2012, 20:48
А можно ли назначить уровень прав ещё на этапе сборки?

K.A.V.
22-09-2012, 20:57
уровень прав »
Прав чего?
CRCCheck off это не проверка "прав", а отключение проверки целостности пакета инсталлятора

Можете включить блокировку архива от просмотра его содержимого (в настройке проекта), при включении данной настройки автоматически отключается проверка на целостность, т.е. добавляется команда CRCCheck off

Limonica
22-09-2012, 21:40
имеллось ввиду добавление записи в манифест на этапе сборки.

K.A.V.
22-09-2012, 22:23
Limonica, добавляйте в исходник перед компиляцией команду

RequestExecutionLevel
может принимать значения: user|highest|admin

Пример:
RequestExecutionLevel admin

Информация из оригинального файла справки NSIS к команде:

Specifies the requested execution level for Windows Vista and Windows 7. The value is embedded in the installer and uninstaller's XML manifest and tells Vista/7, and probably future versions of Windows, what privileges level the installer requires. user requests the a normal user's level with no administrative privileges. highest will request the highest execution level available for the current user and will cause Windows to prompt the user to verify privilege escalation. The prompt might request for the user's password. admin requests administrator level and will cause Windows to prompt the user as well. Specifying none, which is also the default, will keep the manifest empty and let Windows decide which execution level is required. Windows Vista/7 automatically identifies NSIS installers and decides administrator privileges are required. Because of this, none and admin have virtually the same effect.

It's recommended, at least by Microsoft, that every application will be marked with the required execution level. Unmarked installers are subject to compatibility mode. Workarounds of this mode include automatically moving any shortcuts created in the user's start menu to all users' start menu. Installers that need not install anything into system folders or write to the local machine registry (HKLM) should specify user execution level.

More information about this topic can be found at MSDN. Keywords include "UAC", "requested execution level", "vista manifest" and "vista security".

Limonica
23-09-2012, 15:51
Добавьте пожалуйста эту опцию в новую версию программы например рядом с перезаписью.

K.A.V.
23-09-2012, 17:10
Добавьте пожалуйста эту опцию в новую версию программы например рядом с перезаписью. »
Добавлю в "Управление проектами" выпадающий список

Salmo
24-09-2012, 18:30
K.A.V., Спасибо за программу! Не удается получить самоудаление архива. После распаковки, почему-то, открывается окно проводника и все...

K.A.V.
24-09-2012, 18:59
Salmo, версия SFX Creator последняя?
В Windows XP проблем с самоудалением нет, насчет тестирования данной возможности в других ОС ничего сказать не могу, т.к. выполнить тест не имею возможности

В файле проекта опция Самоудаления в диалоге "Управление проектами" включено?

Проблема с неработоспособностью самоудаления было в прежней версии SFX Creator (вроде бы в версии 2.5)

Salmo
24-09-2012, 19:31
K.A.V., Спасибо за быстрый ответ. Версия 2.6. ОС Windows XP. Опция самоудаления включена. Попробую переустановить SFX Creator...

Salmo
24-09-2012, 19:54
Переустановил накатом (или нужно полное удаление?). Создал новый архив с опцией самоудаления. После распаковки...открылось окно проводника "Мои документы" с деревом папок...

K.A.V.
24-09-2012, 20:20
Salmo, файл проекта скиньте сюда, что у вас там такого необычного, что заставляет SFX Creator поступать таким странным образом, даже не знаю...

Salmo
24-09-2012, 20:56
Сделал проект из одного файла:

[Главные_настройки]
Самоудаление=1
Имя=Salmo
Версия=
Директория установки=D:\TEMP
Выходной файл=D:\res.exe
[Файлы для упаковки]
1=D:\Авира\HBEDV.KEY
1_to=$INSTDIR
1_OverWrite=Перезаписывать

Поведение такое же...

Salmo
24-09-2012, 21:19
Исходник:


; ========== SFX Creator [NSIS Source Code Creator] ==========

; Данный код был создан с помощью программы SFX Creator
; Автор программы SFX Creator - K.A.V.

; Последнюю версию SFX Creator можно найти на моём сайте
; http://winxpregp.narod.ru/


; ------------------------------------------------------
; Удаление данных строк при публикации исходника является
; нарушением авторских прав программы SFX Creator


!define PRODUCT_NAME "Salmo"

XPstyle on


SetCompressor LZMA
!include "StrFunc.nsh"
!include "FileFunc.nsh"
${StrRep}
var Day
var Month
var Year
var WeekDay
var Hour
var Minute
var Seconds
var TMPDIR
!include "SoftInclude.nsh"
!include "K.A.V._PRE_Function.nsh"
!include "K.A.V._POST_Function.nsh"
LoadLanguageFile "Contrib\Language files\Russian.nlf"
Name "${PRODUCT_NAME}"
InstallDir "D:\TEMP"
ICON "contrib\icon.ico"
UninstallIcon "contrib\icon.ico"
OutFile "D:\res.exe"

Function .onInit
Var /Global CommandLine
!insertmacro GetParametersCall $CommandLine
${GetTime} "" "L" $Day $Month $Year $WeekDay $Hour $Minute $Seconds
StrCpy $TMPDIR "$TEMP\sfxcreator_$Minute$Hour$Seconds"
CreateDirectory "$TMPDIR"
call PRE_Function
SetOverWrite on
SetOutPath "$INSTDIR"
File "D:\Авира\HBEDV.KEY"
call POST_Function
RMDir /r /REBOOTOK "$TMPDIR"
SelfDel::Del
quit
FunctionEnd



section -Post
sectionend



Function WriteUnInstallFunction
Functionend

K.A.V.
25-09-2012, 05:28
Salmo, лично у меня всё прекрасно работает...
У вас видимо какая-то сборка операционной системы?

Проверьте, указана ли у вас системная переменная WINDIR по пути:
Свойства системы => Вкладка дополнительно => Переменные среды

Salmo
25-09-2012, 13:00
K.A.V., Спасибо за участие. Нет не сборка. Переменная на месте. Проверю эту функцию и работу установщика на других системах, у меня под рукой Виста и Семерка, потом отпишусь...

Salmo
25-09-2012, 14:31
Сожалею, но результат проверки не положительный... На Висте и Семерке архив распаковался по указанному пути, самоудаление не произошло. На ХР поведение по прежнему странное - открывается папка Мои документы. Запускался архив с Рабочего стола. Так что удаление архива буду осуществлять через функции вложенных файлов. А как раскрывается переменная SFX Creator - $PLUGINSDIR, куда "улетают" DLL? Еще раз спасибо.

K.A.V.
25-09-2012, 14:54
На ХР поведение по прежнему странное - открывается папка Мои документы »
Если бы на моей системе было такое поведение - я бы разбирался, а почему именно у вас не работает функция самоудаления, ответить затрудняюсь, возможно в DLL проблема, которая удаляет SFX архив

Запускался архив с Рабочего стола »
А с корня диска пробовали?

А как раскрывается переменная SFX Creator - $PLUGINSDIR, куда "улетают" DLL? »
Данная директория создаётся в папке $TEMP (временная папка в профиле пользователя) со случайным именем

Кстати, у вас ОС не х64 случайно?




© OSzone.net 2001-2012