Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » SFX Creator 4 Alpha - создаём SFX архивы

Ответить
Настройки темы
SFX Creator 4 Alpha - создаём SFX архивы

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: K.A.V.
Дата: 15-06-2020
Описание: Сборка #3 (фикс ошибки невозможности запуска)
Вложения
Тип файла: zip SFXCreator4Alpha_Build3.zip
(2.73 Mb, 577 просмотров)
Тип файла: zip build_3.zip
(812.3 Kb, 292 просмотров)
SFX Creator 4 Alpha
Обновление с любых прошлых версий не поддерживается! Производите чистую установку
Официальный сайт: http://kav-soft.ru/

Прочтите, перед тем как писать в эту тему

Если у вас возникли сложности при работе с SFX Creator, то пожалуйста, будьте добры, убедитесь, что вы проделали всё нижеописанное:
1. В главном окне программы нажмите на кнопку с красным значком вопроса и ознакомьтесь с файлом справки
2. Убедитесь, что используете последнюю версию SFX Creator
3. Не обсуждается работа ранних версий SFX Creator

Если у вас по прежнему возникают сложности - пишите в эту тему

О программе
Программа SFX Creator предназначена для создания SFX архивов, а также программа может быть использована для создания простых пакетов инсталляций с графическим интерфейсом и выбором устанавливаемых компонентов.
Основные возможности программы
Их много
  • Возможность создания как полностью silent (скрытых) SFX архивов, так и простых пакетов инсталляторов с графическим интерфейсом
  • Возможность показать настроенный баннер прогресса распаковки файлов
  • Возможность показать ваше изображение перед запуском процесса распаковки файлов
  • Возможность самоудаления архива после распаковки ваших файлов
  • Возможность создать программу удаления (с добавлением пункта в апплет "Установка и удаление программ")
  • Возможность закрыть приложения по точному/части имени окна, по классу окна, по образу процесса
  • Возможность ожидания запущенных приложений
  • Возможность проверки операционной системы
  • Поддержка большинства переменных системных/пользовательских директорий
  • Поддержка перезагрузки компьютера (по запросу или принудительно)
  • Создание ярлыков для файлов
  • Импорт REG-файлов после распаковки файлов
  • Выполнение приложений
  • Выполнение операций в реестре (запись/удаление параметров, удаление разделов)
  • Выполнение файловых операций (копирование/удаление файлов, создание/удаление директорий)
  • Возможность установить свою иконку на выходной файл
  • Возможность добавить информацию о версии файла
  • Возможность выполнить собственные функции, написанные на языке NSIS
  • Возможность распаковать ваши файлы в каталог, который указан в каком-либо ключе реестра
  • Регистрация библиотек при распаковке файлов (и возможность отменить регистрацию при удалении приложения)
  • Возможность при запуске/завершении показать пользователю информационное сообщение
  • Вы можете создавать пакет инсталлятора с графическим интерфейсом с возможностью выбора внешнего вида интерфейса: Modern UI или Ultra Modern UI, при выборе Ultra Modern UI вы также можете выбрать скин для интерфейса
  • При создании проекта с графическим интерфейсом, вы можете добавить отображение изображения на задний план
  • При создании проекта с графическим интерфейсом, вы можете создавать свои группы с компонентами и связывать исполнение команд с вашими компонентами
  • И многое другое!



Загрузка:

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:
Показать/скрыть список поблагодаривших

Отправлено: 03:13, 29-09-2009

 

Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


MKN, я имел еще виду исполняемый файл для этапа компиляции на с++ - тут придется попотеть), как дополнение к плагину, плагин определения установки msi сделаю после того, как свой плагин для работы с процессами закончу.
кстати еще один код определяющий, какие продукты msi установленные в системе, рядом файлик в формате ini появится.
Код: Выделить весь код
Dim installer, productcode, text, fso

Set fso = CreateObject("Scripting.FileSystemObject")
Set text = fso.CreateTextFile("msi.ini", True)
Set installer = CreateObject("WindowsInstaller.Installer")

text.writeline ("[Products]")
For Each productcode In installer.products
   text.writeline (installer.productinfo (productcode, "InstalledProductName") & " = " & productcode)
   'text.writeline (installer.productinfo (productcode, "InstalledProductName") & " v(" & installer.productinfo (productcode,"VersionString") & ") = " & productcode)
Next

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 27-05-2011 в 17:24.


Отправлено: 16:46, 27-05-2011 | #151



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата MKN:
Экспорт произвести в обыкновенный одноимённый txt файл. Например, в ProductCode.txt и ProductName.txt »
Ясно.
Цитата MKN:
Для работы же, предложенного тобой vbs скрипта, местонахождение и исходного *.msi и результирующего txt файлов - рядом со скриптом vbs. »
Результирующие файлы ложатся рядом с «*.msi» — хорошо. Рядом со скриптом — это мне не нравится. Не есть правильно иметь кучу дубликатов скрипта по разным папкам.

Цитата MKN:
На кой нам получать ещё и ProductName ? »
Я хотел сразу и «ProductName» добавить в скрипт, но изначально такой вопрос не стоял — я и не стал делать сие.

Цитата MKN:
Данные из ProductCode.txt и ProductName.txt заносятся в соответствующие переменные и записываются в код нового созданного файла msi.nsi. Где он будет создан, не критично. К примеру, в C:/myMSInsi
В этот файл msi.nsi записывается »
Можно сделать, но мне нужно чёткое пояснение куда писать полученные значения «ProductName» и «ProductCode». По приведённому примеру мне не ясно.

Можно и просто поместить полученные значения в буфер обмена в нужном формате.

Подход:
Цитата kotkovets:
1. Исполняемый файл *.exe который заводится препроцессором NSIS и этот файл *.exe (vbs скрипт) заинклудит массив номерков в код NSIS на этапе компиляции проекта »
мне кажется более правильным. Кстати, а почему не просто *.vbs, безо всяких компиляций?

А в чём пишете NSIS-проекты? Скажем, редактор SciTE умеет передавать выделенный текст запускаемой внешней программе, равно скрипту, как аргумент командной строки, и получать результат работы из её stdout, который затем может быть сразу вставлен в редактируемый текст.

Цитата MKN:
PS DrWEB c ума сходит от этого скрипта и не даёт сохранять... Что делать ? »
Мне сложно что-либо сказать вразумительное по поводу столь неподобающего поведения DrWEB.


Цитата MKN:
И сдаётся мне что от vbs скрипта придётся отказаться из-за реакции на него антивирусов (пусть и не всех...).
Пользователь не должен страдать из-за этого. Если конечно Iska чего нибудь в скрипте не подправит...
И возможно придётся сконвертить vbs в exe. »
Конвертация скрипта в исполняемый файл только усилит подозрительность антивирусов.

Цитата MKN:
Скрипт должен без проблем автономно запускаться на машинах пользователей, у которых есть проблемы либо с скриптоассоциациями , либо чего то скриптовое не установлено или повреждено. Сплошь и рядом встречаю машины, где не возможно так просто запустить файлы VBS... »
«Сплошь и рядом» — не встречал такого.

В принципе, сбитые ассоциации легко обходятся прямым указанием исполняемого файла и пути к скрипту:
Код: Выделить весь код
C:\WINDOWS\system32\wscript.exe "E:\Песочница\0057\GetProductCodeFromMSI.vbs"
или
Код: Выделить весь код
C:\WINDOWS\system32\cscript.exe "E:\Песочница\0057\GetProductCodeFromMSI.vbs"
Не установлено — как такое может быть? Это ведь один из основных компонентов системы. Библиотеки, кроме того, входят в состав всех IE. Если повреждено — надо восстанавливать.

Очередное приближение:
читать дальше »
Код: Выделить весь код
Option Explicit

Const msiOpenDatabaseModeReadOnly = 0


Dim strArg
Dim strProperties
Dim strAllValues

Dim objDatabase


If WScript.Arguments.Count <> 0 Then
	strAllValues = ""
	
	For Each strArg In WScript.Arguments
		With WScript.CreateObject("Scripting.FileSystemObject")
			If .FileExists(strArg) Then
				If UCase(.GetExtensionName(strArg)) = UCase("msi") Then
					Set objDatabase = WScript.CreateObject("WindowsInstaller.Installer").OpenDatabase(strArg, msiOpenDatabaseModeReadOnly)
					
					strProperties =                 GetMSIProperty(objDatabase, "ProductName")    & vbCrLf
					strProperties = strProperties & GetMSIProperty(objDatabase, "ProductVersion") & vbCrLf
					strProperties = strProperties & GetMSIProperty(objDatabase, "ProductCode")    & vbCrLf
					
					With .CreateTextFile(.BuildPath(.GetParentFolderName(strArg), .GetBaseName(strArg) & ".MSIProperties.txt"), True, True)
						.Write strProperties
						.Close
					End With
					
					strAllValues = strAllValues & strProperties & vbCrLf
					
					Set objDatabase = Nothing
				Else
					WScript.Echo "File [" & strArg & "] in not a MSI file."
				End If
			Else
				WScript.Echo "File [" & strArg & "] not found."
			End If
		End With
	Next
	
	Copy2Clipboard strAllValues
Else
	WScript.Echo "Usage: " & WScript.ScriptName & " <msi file 1> <msi file2> … <msi file N>"
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Function GetMSIProperty(objDatabase, strProperty)
	With objDatabase.OpenView("SELECT * FROM Property WHERE Property = '" & strProperty & "'")
		.Execute()
		
		With .Fetch()
			GetMSIProperty = .StringData(1) & ":" & .StringData(2)
		End With
		
		.Close
	End With
End Function
'=============================================================================

'=============================================================================
Sub Copy2Clipboard(strValue)
	With WScript.CreateObject("InternetExplorer.Application")
		.Navigate("about:blank")
		
		.document.parentWindow.clipboardData.setData "text", strValue
		.Quit
	End With
End Sub
'=============================================================================

Скрипт принимает msi-файлы аргументами командной строки. Можно, например, создать ярлык к скрипту и бросать на него msi-файлы. В папке рядом с каждым msi-файлом будут созданы одноимённые им текстовые файлы по принципу «<Имя msi-файла>.MSIProperties.txt». В число извлекаемых свойств я включил имя пакета — «ProductName», версию — «ProductVersion» и «ProductCode». Помимо того данная информация будет помещена в буфер обмена (будет ли последнее работать с версиями IE > 6 — не знаю) в виде, наподобие:
читать дальше »
Код: Выделить весь код
ProductName:MsiVal2
ProductVersion:4.0.6001.000
ProductCode:{CC14CF6A-7D60-413A-934C-3150D422DA6D}

ProductName:Orca
ProductVersion:4.0.6001.0000
ProductCode:{4F34C602-4D6D-470D-A2A0-59E4F25DDBF2}

ProductName:Norton AntiVirus Help
ProductVersion:15.0
ProductCode:{E3EFA461-EB83-4C3B-9C47-2C1D58A01555}
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:51, 05-06-2011 | #152


Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Iska:
А в чём пишете NSIS-проекты? »
не поверите, часто всего приходится (в силу разных причин) обычным блокнотом или Notepad ++
попробЫвал SciTE - понравилось...
и плагин для msi уже написал для NSIS относительно недавно:
http://forum.oszone.net/showpost.php?p=1684697

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Отправлено: 11:21, 12-06-2011 | #153


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Спасибо, ясно.

Цитата kotkovets:
и плагин для msi уже написал для NSIS относительно недавно: »
Поскольку я имею слабое представление, хочу уточнить, правильно ли я понял: написанный Вами плагин предназначен для работы изнутри самой инсталляции, непосредственно в процессе установки, а не для сборки самой инсталляции, так?

Отправлено: 05:36, 18-06-2011 | #154


Аватара для kotkovets

Ветеран


Сообщения: 1216
Благодарности: 486

Профиль | Отправить PM | Цитировать


Цитата Iska:
а не для сборки самой инсталляции, так? »
да, все верно, даже можно обойтись без сборки самой инсталляции, т.е имеем некий msi продукт в проекте NSIS - в процессе распаковки продукта во временную папку проверяем плагином на предмет нужных задач. Единственный недостаток - пакет msi всегда нужно распаковывать.

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Отправлено: 21:32, 18-06-2011 | #155


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


kotkovets, благодарствую за разъяснение.

Отправлено: 21:53, 18-06-2011 | #156


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


Сообщения: 1986
Благодарности: 723

Профиль | Сайт | Отправить PM | Цитировать


Хотелось бы вспомнить вопрос, который я так и не решил, насчет разброса команд по компонентам

Обращаюсь к вам, MKN, т.к. проект кроме вас больше никто не обсуждает, и идеи новые приносите только вы, такое ощущение, что программу только для вас пишу

Вообщем хочу продолжить разработку программы, т.к. ну просто не могу я вот так смотреть на своё творение, как оно "умирает", хотя на него я потратил очень много времени и сил

Будем навёрстывать упущенное

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 19:05, 30-07-2011 | #157

MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 557

Профиль | Отправить PM | Цитировать


K.A.V.,
Думаю, что не один я горячо приветствую любые твои реализации в улучшении и расширении функционала SFX Creator_а.
Другие заинтересованные пользователи NSIS наверное просто молча одобряют твои действия и собираются с мыслями...
Цитата K.A.V.:
так и не решил, насчет разброса команд по компонентам »
Это о чём мы говорили... Два месяца уж прошло. О вариантах определения установленного ПО ? Вроде как к уже вышесказанному добавить нечего. Нет, есть чего - добавить в SFX Creator использование замечательного плагина getmsi от kotkovets, для определения установленных MSI пакетов.

Оч. полезно было бы добавить инструментарий для организации ассоциаций файлов.

И есссно дополнить программу необходимыми функциями, как то : выбор устанавливаемых компонентов, работа в x64 ОС, определение типа ОС, выбор различных переменных для разных типов ОС, работа с процессами, с службами, с "сетевыми делами"... Поле дополнений и расширений, не пахано и обширно до бесконечности...

ps А также, на перспективу, возобновить реализацию идеи - при создании инсталлятора предусмотреть создание отдельного пользовательского дистрибутива из выбранных компонентов. Эту идею уже успешно реализовал kotkovets (правда для конкретного ПО). На мой дилетансткий взгляд, реализовал сложновато и не универсально... Наверное, если kotkovets присоединиться к доработке проекта SFX Creator_а, то будет боольшая польза.

А также, очень интересна идея, по упрощению создания различных кастомных страниц с выбираемым набором функций управления.
Типа, как реализовано в NSIS Dialog Designer http://coolsoft.altervista.org/en/nsisdialogdesigner , но лучше...

Последний раз редактировалось MKN, 30-07-2011 в 21:40.


Отправлено: 21:12, 30-07-2011 | #158


Старожил


Сообщения: 183
Благодарности: 28

Профиль | Отправить PM | Цитировать


Цитата K.A.V.:
т.к. проект кроме вас больше никто не обсуждает »
Ну я как бы перестал в эту тему заглядывать, потому что вы как-то писали что ушли служить, вот собственно я и подумал что проект скорей всего загнется, в основном после армии у людей резко меняется мировосприятие, ну а что собственно тогда мне и начинать то было знакомство с вашей программой если до логичного конца я не расчитывал что дело дойдет. Ну теперь вижу вашу четкую позицию по отношению к программе, поэтому буду заходить в эту тему почаще, ну и собственно как-то всё таки вливаться в дискуссию (разбавлять ваш с MKM дует).

Отправлено: 10:21, 31-07-2011 | #159


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго дня уважаемое сообщество.
Скажите пожалуйста как мне прописать команду в SFX Creator'е,
Как мне прописать, чтоб перед установкой файла сделать проверку запущен он или нет и если он уже исполнятся, пропустить его установку и запуск.
Предполагаю, что делается через if exist. Подскажите как правильно прописать

Последний раз редактировалось HiddeN_Ra, 03-08-2011 в 01:20.


Отправлено: 01:04, 03-08-2011 | #160



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » SFX Creator 4 Alpha - создаём SFX архивы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Архиваторы - [addon] 7z SFX tools stable/7z SFX tools beta greg_b Наборы обновлений для Windows XP/2003/Windows 7 173 14-09-2012 19:30
[решено] Распаковщик Smart Install Maker D_Master Хочу все знать 3 31-05-2011 15:05
[решено] Интересует куда делись Regedit.exe | NTSD.exe | NETSETUP.exe | TELNET.exe Ricardo Проект WinStyle 11 30-07-2009 23:36
Отладчик exe файлов Go2 Программирование и базы данных 2 29-09-2005 12:34
*Решено* | Нужен распаковщик PECompact 1.22 -> Jeremy Collake RAY Программирование и базы данных 2 23-01-2005 15:01




 
Переход