Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   SFX Creator 4 Alpha - создаём SFX архивы (http://forum.oszone.net/showthread.php?t=151756)

K.A.V. 29-09-2009 03:13 1229975

SFX Creator 4 Alpha - создаём SFX архивы
 
Вложений: 2
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 вы также можете выбрать скин для интерфейса
  • При создании проекта с графическим интерфейсом, вы можете добавить отображение изображения на задний план
  • При создании проекта с графическим интерфейсом, вы можете создавать свои группы с компонентами и связывать исполнение команд с вашими компонентами
  • И многое другое!



Загрузка:

kilogen 30-09-2009 10:38 1231041

Здравствуйте.

Подскажите пож-то, что необходимо сделать, что бы установвить с помощью вашей программы RAR, Adobe, Kaspersky
Спасибо.

Да а как скачать программу?

Habetdin 30-09-2009 14:46 1231223

Цитата:

Цитата kilogen
Подскажите пож-то, что необходимо сделать, что бы установвить с помощью вашей программы RAR, Adobe, Kaspersky »

Раз уж создали тему Установка приложений с помощью ССМ2007 - там и ответы читайте...
Цитата:

Цитата kilogen
Да а как скачать программу? »

Нажмите на ссылку
Цитата:

Цитата K.A.V.
Скачать
читать дальше » »

Только не открывайте в новой вкладке :)

kilogen 01-10-2009 08:45 1231743

Спасибо!

MKN 09-11-2009 11:11 1265485

K.A.V.,
Предполагается ли расширение возможностей программы, а именно - создавать инсталлятор не из одной только папки, а из нескольких, со своими путями ? Добавлять в проект отдельные файлы ? Регистрация DLL, OCX, ax ?

K.A.V. 09-11-2009 13:02 1265575

Цитата:

Цитата MKN
Предполагается ли расширение возможностей программы »

Ну вообще да...я бы не стал выкладывать программу, последняя версия которой 1.0 :)

Цитата:

Цитата MKN
создавать инсталлятор не из одной только папки, а из нескольких, со своими путями »

осуществимо

Цитата:

Цитата MKN
Добавлять в проект отдельные файлы »

тоже возможно

Цитата:

Цитата MKN
Регистрация DLL, OCX, ax »

ну это можно сделать простым обращением к regsvr32 же...


сейчас звонили с военкомата, поэтому...посмотрим чего мне завтра скажут, если заберут, то пока новой версии не будет :)

MKN 09-11-2009 13:47 1265638

K.A.V.,
Ещё такой момент интересен - возможно ли в программе осуществить автоопределение путей переменных, как в ОС так и в реестре, в зависимости от разрядности ОС (х32 или х64) ? Или так и происходит ?
Цитата:

это можно сделать простым обращением к regsvr32
Так то оно так, если в программе предусмотрена последовательность ряда действий "Выполнить после распаковки" или нечто подобное (хорошо бы , чтобы пользователю предлагался список таковых).
А пока ведь только один раз можно что то выполнить... Можно конечно запускать какой нибудь командный файл с перечислением действий, но это будет не оч. красиво, да и хлопотно...

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

А удаление ключей реестра происходит, если в импортируемом рег-файле есть таковой ([ -HKLM и т.д.) ?

Возможно ли проверять наличие уже установленного приложения или компонентов ОС и и исходя из результата осуществлять дальнейшие действия (не плохо бы сразу включить в список проверки ряд ходовых - Microsoft NET Framework, Visual C++ и т.п. , различных версий) ?

K.A.V. 09-11-2009 16:24 1265784

Цитата:

Цитата MKN
Ещё такой момент интересен - возможно ли в программе осуществить автоопределение путей переменных, как в ОС так и в реестре, в зависимости от разрядности ОС (х32 или х64) ? Или так и происходит ? »

так значения переменных и определяются автоматически вообще-то... :)
А вот насчет разрядности ОС я даже и не знаю...будет ли вообще работать на x64 системах, да и не имел с этими системами делов пока...
да в принципе я и не думал над тем, чтобы утилитка работала x64 системах... :)

Цитата:

Цитата MKN
Так то оно так, если в программе предусмотрена последовательность ряда действий "Выполнить после распаковки" или нечто подобное »

вообще если вы читали файл справки, то "UnPacker Creator" сначала создаёт исходный код с прописанными командами на языке NSIS, затем этот код компилируется...вы можете внести свои команды, функции и т.д. в этот исходник и вручную откомпилировать уже с вашими изменениями

Цитата:

Цитата MKN
хорошо бы , чтобы пользователю предлагался список таковых »

выводить список всех доступных команд в NSIS? :o

Цитата:

Цитата MKN
А пока ведь только один раз можно что то выполнить... Можно конечно запускать какой нибудь командный файл с перечислением действий, но это будет не оч. красиво, да и хлопотно... »

учту так же как и с папками ;)

Цитата:

Цитата MKN
А удаление ключей реестра происходит, если в импортируемом рег-файле есть таковой ([ -HKLM и т.д.) ? »

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

Цитата:

Цитата MKN
Возможно ли проверять наличие уже установленного приложения или компонентов ОС и и исходя из результата осуществлять дальнейшие действия »

это возможно, если вы сами будете дописывать исходный код вашего проекта

MKN 09-11-2009 16:40 1265801

K.A.V.,
Цитата:

Цитата K.A.V.
выводить список всех доступных команд в NSIS? »

Зачем всех ? Немного самых ходовых, типа регистрация ActiveX, основные операции с файлами и папками.
Цитата:

Цитата K.A.V.
можете внести свои команды, функции и т.д. в этот исходник »

Цитата:

Цитата K.A.V.
если вы сами будете дописывать исходный код вашего проекта »

Как раз этим и не хотелось бы заниматься вручную и вообще заморачиваться с кодами и скриптами...

Чем примечательна твоя программа - тем, что как бы является простой и понятной оболочкой NSIS_а. Усовершенствовать ,бы её, расширив возможности - и цены бы ей не было ! :)

K.A.V. 09-11-2009 18:40 1265922

Цитата:

Цитата MKN
Как раз этим и не хотелось бы заниматься вручную и вообще заморачиваться с кодами и скриптами... »

Я вас понял, посмотрю что можно будет сделать :)

K.A.V. 11-11-2009 06:36 1267227

...посмотрел я текущий исходник моей программки :)
Сказать честно, ничего общего я не вижу между текущим кодом и будущим, если добавлять все (ну или большую часть) вышеописанного участником MKN, а добавлять нужно это точно, т.к. программка немного и правда неудобная, тем более что возможностей может быть гораздо больше...
Поэтому, я решил, что к программку необходимо переписывать заново...т.к. править текущий код не получиться :(
вот...так что кому интересна программка, то могу сказать, что к выходным скорее всего (но не 100%) "UnPacker Creator" ждёт "новое рождение" :)

MKN 11-11-2009 08:35 1267248

Цитата:

Цитата K.A.V.
"UnPacker Creator" ждёт "новое рождение" »

С радостью поднимем бокалы за "рождение именинника" ! :)

K.A.V. 20-11-2009 21:48 1276065

Решил отписаться...а то обещал и...
:) не получилось "немножко" в срок, оказалось много работы там...

В общем переписал весь код заново, сделал больше половины, уже реализовано:
1. Добавление отдельных папок в проект
2. Добавление отдельных файлов в проект
3. Поочередное выполнение приложений после (и перед) распаковки файлов
4. Добавление импорта REG-файлов после распаковки
5. Добавление операций в реестре (запись/удаление параметров, удаление параметров/разделов)
6. Добавление файловых операций (копирование/удаление файлов, создание/удаление директорий)

ещё даже хотел написать функцию создания деинсталлятора...но решил пока отложить, уж многоват уже объём выполненных работ :)

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

прогнозов не буду давать по поводу окончания работ над новой версией, т.к. вы же понимаете, я человек... :) бываю "иногда" занят, иногда не в настроении и т.д. ;)

вот как то так... :)

MKN 22-11-2009 10:12 1277016

Цитата:

Цитата K.A.V.
ведь она мало кому может понадобиться...или я ошибаюсь? »

Возможность определения установленного ПО - оч. полезная функция для инсталлятора ! И оч. редкая среди инсталляторов.
В лучшем случае предлагается определить наличие установленных IE и Framework. А ведь этого мало. Нужно бы определение и других ходовых компонентов - VC++ и его версии и т.д.

И самое конечно главное, проверка перед инсталляцией - установлено ли уже это приложение и какой версии, с предложением дальнейшего выбора действий.
А то ведь могут быть большие неприятности, при установке "поверх"...

Так что эта функция просто необходима !

Цитата:

Цитата K.A.V.
хотел написать функцию создания деинсталлятора »

Вообщето без деинсталлятора нельзя... А то полуфабрикат получится..
Пусть уж проект чуть задержится в реализации, но зато итог обещает быть замечательныым ! :)

K.A.V. 24-11-2009 11:17 1278767

Цитата:

Цитата MKN
Вообщето без деинсталлятора нельзя... А то полуфабрикат получится.. »

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

Поэтому, кому нужнен простой создатель SFX распаковщиков, пользуйтесь данной программой, кому нужно что-то наподобии уже создания инсталлятора - юзайте сторонние проги типа "Smart Install Maker", а тому, кому неохото платить :D могу предложить подождать...я начинаю новый проект - "Installer Creator" :)
Да, и не факт, что я успею выложить хотя бы первую версию...пришла пора отдать долг родине...

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

MKN 24-11-2009 15:20 1278948

K.A.V.,
Обнародуй хотя бы что уже сделал.... А относительно пожеланий - сам же предложил в шапке темы :
Цитата:

Пожелания/предложения также рассматриваются
А уж следовать пожеланиям или нет - тебе решать...

K.A.V. 24-11-2009 18:23 1279050

Цитата:

Цитата MKN
Обнародуй хотя бы что уже сделал.... »

Постараюсь в ближайшее время...(не успел я всё-таки дописать возможность определения ПО) ибо занят сейчас ужасно :(

Цитата:

Цитата MKN
А относительно пожеланий - сам же предложил в шапке темы : »

А я и не отказываюсь

Цитата:

Цитата MKN
А уж следовать пожеланиям или нет - тебе решать... »

Да дело в другом...я имею ввиду то, что если сейчас всё реализовать...то потом я подозреваю, что добавленных возможностей покажется мало, и, например, люди захотят создать полноценный инсталлятор, простой пример - с показом диалогов "Приветствие", "Лицензионное соглашение" и т.д., и просто не хочется выполнять двойную работу...

На данное решение меня толкнула имеено вышеупомянутая программа - "Smart Install Maker", понравилась функциональность, количество настроек/возможностей, и главное - более удобные диалоги

MKN 24-11-2009 18:28 1279056

Цитата:

Цитата K.A.V.
Smart Install Maker »

Прога не плохая для простеньких случаев. Многого не умеет (даже ключ реестра удалить !) Плюс ко всему давно уж заброшена и не развивается...
Цитата:

Цитата K.A.V.
с показом диалогов "Приветствие", "Лицензионное соглашение" »

Вот уж что на фиг не нужно. Косметика и рюшечки совершенно ни к чему. Да и чёрт с ним , с деинсталлятором...
Сделай пожалуйста функцию проверки перед инсталляцией - установлено ли уже это приложение и какой версии - и оч. будет здОрово !

K.A.V. 24-11-2009 18:38 1279065

Цитата:

Цитата MKN
Да и чёрт с ним , с деинсталлятором... »

Цитата:

Цитата MKN
Сделай пожалуйста функцию проверки перед инсталляцией - установлено ли уже это приложение и какой версии - и оч. будет здОрово ! »

Ну тогда пока отложим "Installer Creator" :teeth:
Неделька у меня пока есть (а там армия по мне плачит :lol:, хотя не факт), опять же, как получиться...
Попробуем выпустить 2.0 :beta:

K.A.V. 26-11-2009 14:36 1280382

Значит так, прогресс есть :)
Написал я функцию определения ПО, вроде всё правильно, но не исключено, что в коде есть ошибочки...
Сейчас собираюсь писать функцию создания деинсталлятора...а пока, вы укажите ПО, которое требуется определять, но учтите, всех программ у меня нет, поэтому я не могу опеделить всё ПО, которое вы здесь укажите, ведь для каждой программы пишется отдельная функция для определения...поэтому, по возможности, указывайте информацию по каким "следам" в системе можно определить, установлена программа или нет (например ключ/раздел в реестре, наличие какого-либо файла и т.д.)

MKN 26-11-2009 18:58 1280632

Цитата:

Цитата K.A.V.
по каким "следам" в системе можно определить, установлена программа или нет »

Так как вариантов действительно может быть много (хотя есть конечно в реестре места "застолблённые" под наличие установленного ПО , да и в ОС тоже - например, WINDOWS\Installer - но это всё частные случаи...), то может лучше предоставить пользователю самому указать признак нахождения ?

Для выполнения функции нахождения установленног ПО будет предложено указать или конкретное известное местонахождения конкретного файла (папки) или местонахождение ключа реестра.

Указал - будет исполненно. Нет - установка продолжится без проверки.

K.A.V. 27-11-2009 10:53 1281050

Цитата:

Цитата MKN
то может лучше предоставить пользователю самому указать признак нахождения ? »

Я сделал 2 выбора пользователю - "Автоматически" и "По значению ключа в реестре", в первом случае будет вызвана специально написанная мною функция для определения конкретного приложения, во втором случае там можно выбрать условие значения ключа (например если значения ключа полностью совпадает с вашем указанным значением, или если в значении ключа присутствует указанный вами текст), думаю ещё добавить простое определение существования ключа, т.е. если он есть, то всё норм, значение не важно

Цитата:

Цитата MKN
Для выполнения функции нахождения установленног ПО будет предложено указать или конкретное известное местонахождения конкретного файла (папки) »

Вот с папкой и файлом надо добавить :)

MKN 07-12-2009 18:13 1288858

K.A.V.,
Как продвигается проект ? :)

K.A.V. 07-12-2009 18:49 1288882

MKN, осталось написать функцию деинсталлятора и файл справки

maximum142 12-12-2009 21:07 1293620

K.A.V., при добавлении информации о версии файла выдает ошибку компиляции

K.A.V. 13-12-2009 10:34 1293974

maximum142
1. Писать о проблемах в текущей версии уже не актуально по одной простой причине - весь код программы уже переписан заново
2. Врядли причина именно в этом, потому как я тестировал данную возможность и всё проходило успешно, скорее всего ошибка где-то в другом месте.
Например, я заметил, что происходит ошибка компиляции, если в прописанных путях к файлам присутствует символ $, т.к. с данного символа пишутся переменные в NSIS, пока данный "недостаток" исправить не удаётся

Но всё-равно спасибо за отчет ;)

maximum142 13-12-2009 13:58 1294144

K.A.V.
Понятно, что уже не актуально! я специально указывал абсолютный путь и добавлял информацию о версии файла и тогда выдает ошибку компиляции, при удалении инф о версии файла и при этом путь для распаковки оставлял тот же и все нормально работает. Надеюсь, что в следующей версии этого не будет, а прга интересная :up , спасибо!

K.A.V. 13-12-2009 15:30 1294229

maximum142, ну раз вы уверены, что ошибка именно при добавлении информации о версии файла, я бы хотел посмотреть на исходный код NSIS, который создала программа UnPacker Creator :)

p.s.
Исходный код NSIS хранится по пути:
<Папка UnPacker Creator>\NSIS\Source.nsi

maximum142 13-12-2009 16:14 1294264

K.A.V.
Отправил в PM

K.A.V. 13-12-2009 18:40 1294369

Да действительно, ошибка именно в этом куске кода, отвечающего за информацию о версии файла, не могу сходу сказать причину, но похоже, что-то в переменных перепутал :)
Уделю внимание данной возможности и перепроверю

Спасибо

K.A.V. 15-12-2009 14:19 1295804

:beta:
За последние пару дней я так и не начал создание файла справки для версии 2.0 Beta в силу некоторых обстоятельств, и т.к. я не уверен, что сделаю это в ближайшие дни, я решил так сказать "неофициально" выложить версию 2.0, т.к. некоторые уже довольно долго ждут этой версии ;)
Впринципе, без файла справки обойтись можно :) (это естессвенно временно), из старого файла справки вы можете посмотреть только страничку с переменными :)
Если у вас возникнут вопросы по этой версии, задаём в эту тему

И ещё раз повторюсь, что выладываю это "неофициально", ещё возможны ошибки/недочеты в версии, шапку темы также пока не правлю, до "полного" выхода версии.

Кто хочет познакомиться с полностью переписанной версией, качаем отсюда:
http://winxpregp.narod.ru/ucreator/ucreator2.0beta.rar

Жду ваших отчетов об ошибках :drug:

Спасибо

maximum142 15-12-2009 23:28 1296253

K.A.V. при добавлении иконки выдает, ошибку компиляции.

K.A.V. 16-12-2009 00:09 1296276

Говорю же, ошибки ещё есть :)

Архивчик обновил, чтобы не качать весь архив из-за замены одного файла, скачайте архив с нужным файлом и распакуйте файл в папку с программой
http://winxpregp.narod.ru/ucreator/ccode.rar

p.s.
Кстати, при добавлении версии файла, первое поле "Версия файла" должно иметь формат версии из четырёх чисел, например 1.2.3.4
maximum142, когда вы прислали мне файл в личку, вы указали версию как 1.0 - это не правильно ;)

maximum142 16-12-2009 01:26 1296321

K.A.V.
для удобства хотелось бы указывать "Версию файла" минимум из двух чисел. может реализуете в 2.0 Beta :wink:

K.A.V. 16-12-2009 10:16 1296485

Ну ведь у некоторых приложений, например, есть не только базовая версия, а указание сборки...
Попозже поправлю код (сейчас немного занят), сделаю возможным указывать минимум 2 цифры :)
Изменённые файлы выложу сюда

K.A.V. 16-12-2009 13:05 1296626

Цитата:

Цитата K.A.V.
Попозже поправлю код »

Цитата:

Цитата K.A.V.
Изменённые файлы выложу сюда »

Загружайте обновлённый ccode.exe
http://winxpregp.narod.ru/ucreator/ccode.rar

maximum142 16-12-2009 18:59 1296992

K.A.V., Ссылка, Скачать с OSZone не работает Ошибка 404 — Страница не найдена

K.A.V. 16-12-2009 19:40 1297019

Версию проверяют, наберитесь терпения ;)

MKN 17-12-2009 15:27 1297755

K.A.V.,
Что сразу в UnPacker Creator 2.0 Beta "бросилось в глаза" :

При добавлении папок или файлов в проект,( при нажатии кнопки с "плюсом") - нет отображения добавляемого в проект контента, что крайне не удобно... Надо бы для наглядности...

Также хорошо бы в "Добавить файловую операцию" (лучше вообще сделать отдельно), добавить регистрацию ActiveX компонентов, как оч. часто используемую функцию...

В целом получилось оч. неплохо. Молодец !

K.A.V. 17-12-2009 16:31 1297811

Цитата:

Цитата MKN
При добавлении папок или файлов в проект,( при нажатии кнопки с "плюсом") - нет отображения добавляемого в проект контента, что крайне не удобно... Надо бы для наглядности... »

Да я понимаю :)
Мне тоже бывает неудобно...но, вот вопрос к вам, MKN, куда добавлять это большое поле со списком всех добавленных папок/файлов в проект? Единственный выход из этой ситуации я вижу такой: создать рядом одну кнопку, при нажатии на которую будет открываться дополнительный диалог, в котором будут прописаны пути всех добавленных файлов (так же думаю стоит добавить возможность удаления уже существующих путей в этом диалоге), так пойдёт, или предложите что получше?
На самом деле, ещё есть в этом небольшая "проблемка", UnPacker Creator ведь тоже написан на языке NSIS, и я пока не пробовал реализовывать такую возможность на этом языке :)

Цитата:

Цитата MKN
Также хорошо бы в "Добавить файловую операцию" (лучше вообще сделать отдельно), добавить регистрацию ActiveX компонентов, как оч. часто используемую функцию... »

Ну вот, забыл добавить эту возможность... :sorry:
Помню вы об этом писали, реализую в следующем небольшом обновлении ;)

Цитата:

Цитата MKN
В целом получилось оч. неплохо. Молодец ! »

Спасибо, стараемся :teeth:

MKN 18-12-2009 10:14 1298336

K.A.V.,
Организовать наглядное добавление файлов и папок можно, как в том же Smart Install Maker_е - есть окно, в поле которого отображаются добавляемые папки и файлы (с путями и возможностью их правки), есть две кнопки "Добавить", при нажатии на которые появляется окно выбора путей нахождения и распаковки. Ну, это ты и сам знаешь. Как уж это пограммно реализовать, наверное тебе видней...

Если это сложно реализуемо, то может просто организовать, после каждого добавления , появляющееся окно с добавленным содержимым (хотя бы для наглядности, чтобы не забыть что уже добавлено и куда будет распакованно)

K.A.V. 18-12-2009 12:16 1298421

Сделал набросок


Вот так мне кажется будет удобно :)
В поле со списком будут отображаться добавленные файлы/папки для упаковки, ниже 2 поля, 1-ый отображает добавленный путь, а 2-ое поле директорию назначения (эти 2 поля для редактирования в будущем), далее, виртикальная кнопка "OK" будет применять изменения редактирования, а кнопка "-" удалять запись, ну а кнопки "Добавить файл" и "Добавить папку" будут показывать диалог с добавлением

Так что, если так устравивает, буду думать над реализацией...получится или нет сообщу

MKN 18-12-2009 13:15 1298462

K.A.V.,
Очень хорошо.

SOLON7 21-12-2009 19:34 1300989

K.A.V., Задумка конечно хорошая, вот только как отличие от инсталляторов ??
На чем написана программа, не могли бы вы сделать схему-куартинку как работает ваша програма

ААААА вот вы хитрюга, сделалаи так чтобы программа работала на сонове NSIS !!

Вопрос в чем преумущество перед скриптами NSIS ??

А исходники есть ??

K.A.V. 21-12-2009 21:47 1301116

Цитата:

Цитата SOLON7
K.A.V., Задумка конечно хорошая, вот только как отличие от инсталляторов ?? »

Сейчас у меня ночь (к тому же болею), может поэтому я туго соображаю, вопроса не понял... :)

Цитата:

Цитата SOLON7
На чем написана программа, не могли бы вы сделать схему-куартинку как работает ваша програма »

Моя программа написана тоже на NSIS, схема очень проста:
На основе ваших пожеланий сначала все данные сохраняются в файл проекта, затем, происходит исполнение ccode.exe и данное приложение создаёт исходный код на языке NSIS, а потом компилируется, вот и всё ;)

Цитата:

Цитата SOLON7
Вопрос в чем преумущество перед скриптами NSIS ?? »

Я думаю уже ответил, ни в чем, т.к. программа создаёт код на языке NSIS

Цитата:

Цитата SOLON7
А исходники есть ?? »

Нет, и вряд ли я их выложу, а если даже и выложу, то тогда проект я поддерживать не буду и новые версии выпускать тоже

MKN 22-12-2009 11:04 1301489

K.A.V.,
Скорейшего выздоровления и завершения работы с отображением добавляемого контента и регистрацией ActiveX. :)

K.A.V. 22-12-2009 11:54 1301519

Спасибо, MKN, сегодня мне стало гораздо легче, поэтому вечерком буду думать над версией 2.1 (есть парочка идей :) )

semiono 22-12-2009 14:24 1301637

Название не очень правильное... я извиняюсь конечно. Как будто распаковщик!

K.A.V. 22-12-2009 14:50 1301652

Цитата:

Цитата semiono
Название не очень правильное... я извиняюсь конечно. Как будто распаковщик! »

У меня маленькая фантазия ;)
Название в переводе означает "Создатель распаковщика", ну если вам (и остальным) не нравится название программы, прошу, предлагайте свои варианты, по голосованию решим, какое название подойдёт к этой программе

P.S.
Цитата:

Цитата K.A.V.
Так что, если так устравивает, буду думать над реализацией...получится или нет сообщу »

Цитата:

Цитата MKN
K.A.V.,
Очень хорошо. »

Осуществимо, уже сделал ;)


Добавлено позже
Цитата:

Цитата MKN
Был бы весьма полезен выпадающий список различных используемых переменных для оперативности подстановки в пути. »

Это недоступно в языке NSIS, сегодня я всё-таки решился попробовать это реализовать на C (я С просто не знаю) и...большую часть кода написал, думаю что данная возможность будет в версии 2.1 (т.к. данная возможность действительно необходима для удобности)

semiono 23-12-2009 01:42 1302148

Цитата:

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

PkgBuilder, SetupCompiler, LZMA_Configurator :) 7appsMaster...
Обычно не говорят, что распаковщик. Или возможно я суть програмы не понял. Хотя каждый может смысл в свою прогу вкладывать как захочется автору, такое тоже справедливо. :)

MKN 23-12-2009 09:31 1302271

Цитата:

Цитата semiono
Обычно не говорят, что распаковщик. »

Не говорят, хотя суть действий любого инсталлятора - распаковать упакованнное, в указанное место.
В названии есть нечто отличное от уже "затасканных" сетапов, инсталлеров, буилдеров... :)
Хотя для точности определения назначения программы можно, к примеру и так - NSIS Setup GUI. Или вообще по-русски - "Ап-Сетап !" :)
Такого точно не было...

maximum142 24-12-2009 18:28 1303503

Вложений: 1
K.A.V. Было бы неплохо сделать информацию об устанавливаемом приложении наподобие

K.A.V. 25-12-2009 02:01 1303753

Цитата:

Цитата maximum142
K.A.V. Было бы неплохо сделать информацию об устанавливаемом приложении наподобие »

:lol:
MKN, ну и что я говорил, помнишь? Вот про что

maximum142, ничего обещать не могу по этому поводу

MKN 25-12-2009 09:07 1303824

Цитата:

Цитата K.A.V.
ну и что я говорил »

Не обращай внимание и, как говориться - сосредоточься на главном. Т.е., на завершении основы-ядра проекта.
(А всякой никчёмной мишуры, как то - "Приветствие", "Лицензионное соглашение", рюшечки-картиночки и т.д., хватает и в других инсталляционных продуктах...)

maximum142 25-12-2009 10:04 1303848

Цитата:

Цитата MKN
А всякой никчёмной мишуры, как то - "Приветствие", "Лицензионное соглашение" »

Я предложил не “Лицензионное соглашение” и темболие не "Приветствие" сделать, а информацию об устанавливаемом приложении, потому что есть кряки которые антивирус воспринимает как трояна или вредоносную программу и было бы неплохо при таком раскладе выдать сообщение пользователю, чтобы он не переживал что данная инсталляция навредит OS.

K.A.V. 26-12-2009 15:24 1304754

maximum142, простого сообщения пользователю будет достаточно? (только здесь ограничение на 1024 символов :) )
Просто для реализации показа диалога необходимо подключать MUI NSIS, чего делать не хочется...А
Альтернатива есть, это можно реализовать на языке С, но я данного языка не знаю, так, пишу функции и не более...

MKN 28-12-2009 17:57 1306313

Цитата:

Цитата maximum142
есть кряки которые антивирус воспринимает как трояна или вредоносную программу »

И правильно делают... :) А здесь на форуме слово "кряк" вообще считается матерным и лучше такими не злоупотреблять...
Если хочешь предупредить пользователя о неприятностях такого рода при установке, то совершенно не обязательно обременять этим инсталлятор - сопроводи его текстовым файликом, и все дела...

MKN 12-01-2010 16:00 1318253

K.A.V.,
Как обстановка с завершением проекта ? :)

K.A.V. 14-01-2010 13:34 1319935

Проектом не занимался, всё времени нет, подправил немного код, добавил парочку улучшений...но ещё не закончено, сейчас немного разгрузился...но ничего не обещаю :(

Vadikan 15-01-2010 23:29 1321356

Название, конечно, неудачное... SFX Creator (maker, builder) подходит лучше.

K.A.V. 15-01-2010 23:34 1321361

Цитата:

Цитата Vadikan
SFX Creator »

Вроде бы различие в одно слово, но звучит то на сколько лучше, как это я то не додумался до слова SFX :lol:

Да кстати, сейчас разгрузился, поэтому принимаюсь за работу :)
Если успею до 20 числа, то выложу, а если нет, то...там у меня будет перерыв с выходом в интернет :)

K.A.V. 16-01-2010 17:35 1321871

Вот сижу и пишу версию 2.1 :)
Вроде бы, доделываю последнюю возможность, "Регистрация DLL/OCX" (ещё осталось парочка незначительных подправок)

Есть парочка вопросов:
1. Есть ли ещё какие расширения, которые регистрируются с помощью regsvr32?
2. Какие функции должны быть у данной возможности?
Например, перед вами диалог, в котором присутствует поле, для указания пути к файлу, которого следует зарегистрировать, этого мало не будет? В том смысле, что может быть добавить функцию авто-регистрации, ну например, указываешь только каталог, а программа при установке приложения ищет *.DLL; *.OCX файлы в указанном каталоге и автоматом регистрирует все файлы, нужна такая фишка? Стоит тратить время на её реализацию?

Habetdin 16-01-2010 19:17 1321931

Цитата:

Цитата K.A.V.
с помощью regsvr32? »

Лучше использовать в скрипте RegDLL "<path>" и UnRegDLL "<path>" :)

K.A.V. 16-01-2010 19:58 1321966

Спасибо, Habetdin, за уточнение, но я это знаю ;)
Больше интересуют ответы на вопросы 1 и 2 :)

MKN 17-01-2010 10:55 1322389

Цитата:

Цитата K.A.V.
ищет *.DLL; *.OCX файлы в указанном каталоге и автоматом регистрирует все файлы, нужна такая фишка? Стоит тратить время на её реализацию? »

Не стОит. От авторегистрации будет один только вред... К этому процессу надо подходит осознанно :)
К примеру, в Setup Factory по умолчанию все найденные в папке DLL и пр. отмечены чекбоксами для регистрации.
А оно мне надо, без спроса то ? Вынужден отключать...

K.A.V. 17-01-2010 11:21 1322403

Цитата:

Цитата K.A.V.
перед вами диалог, в котором присутствует поле, для указания пути к файлу, которого следует зарегистрировать, этого мало не будет? »

Значит делаем так? :)

AlexM22204 17-01-2010 13:24 1322516

Цитата:

Цитата K.A.V.
Цитата K.A.V.:перед вами диалог, в котором присутствует поле, для указания пути к файлу, которого следует зарегистрировать, этого мало не будет? »
Значит делаем так? »

Да!!!

K.A.V. 17-01-2010 14:13 1322568

Значит сегодня допишу :)
Остаётся только создать более приличный файл справки :)

Думаю завтра выложу новую версию

AlexM22204 17-01-2010 16:09 1322667

Цитата:

Цитата K.A.V.
Думаю завтра выложу новую версию »

будем ждать с нетерпением!!!

K.A.V. 17-01-2010 19:59 1322909

SFX Creator, Версия 2.1
Вся информация в шапке

Habetdin 17-01-2010 21:20 1322974

K.A.V., у меня программа не хочет сохранять файл проекта и добавлять в проект файлы/папки :dont-know
ОС Windows 7, UAC отключен

K.A.V. 17-01-2010 21:48 1322991

Есть какая-нибудь ошибка? Или просто молча не сохраняет и всё?
Честно говоря даже не знаю что сказать, у меня все функции работают в XP...
А пробовал в режиме совместимости запускать?
Ещё как вариант попробуй установить программу в другую папку (главное чтобы не в Program Files)

Habetdin 18-01-2010 00:27 1323076

K.A.V., не знаю что и как, но программа начинает работать правильно только после сохранения пустого файла проекта через "Управление проектами - Сохранить текущий проект как"
Цитата:

Цитата K.A.V.
Есть какая-нибудь ошибка? Или просто молча не сохраняет и всё? »

После выбора файла и пути распаковки нажимаю "ОК" - окно программы исчезает на секунду и я вижу его снова, но все поля уже пусты

K.A.V. 18-01-2010 00:48 1323087

Нашел ошибку, через минут 5-10 выложу главный файл программы

Добавлено позже
Качай заплатку :drug:
Не знаю, как я так умудрился... :sorry:

MKN 18-01-2010 09:20 1323210

K.A.V.,
Оч. хорошо получилось. Почти хорошо...

Что сразу "напрягло" :) :

В поле окна "Добавление папок/файлов в проект" надо бы добавить и путь назначения добавляемого контента.
А то , если ошибся в пути, просто не сможешь ничего не увидеть, не проверить, не исправить (т.е. необходим пункт "Изменить путь"... )
(Точнее, это крайне не удобно сделать при имеющимся раскладе управления, а увидеть ошибку пути просто не возможно...)

И почему при добавлении файла/папки в проект, так "тяжело", с задержкой, а иногда(да почти всегда) и с сворачиванием окна программы, происходит процесс добавления после нажатия кнопки "ОК" ? Процесс добавления большого количества файлов превращается просто в мУку ! :)

И возможно ли при добавлении файла/папки в проект исключить нажатие на "ОК", т.е. чтобы папка/файл сразу добавлялись в поле окна проекта при соответствующем клике из предоставляемого окна выбора ?

K.A.V. 18-01-2010 13:48 1323402

Цитата:

Цитата MKN
В поле окна "Добавление папок/файлов в проект" надо бы добавить и путь назначения добавляемого контента.
А то , если ошибся в пути, просто не сможешь ничего не увидеть, не проверить, не исправить (т.е. необходим пункт "Изменить путь"... )
(Точнее, это крайне не удобно сделать при имеющимся раскладе управления, а увидеть ошибку пути просто не возможно...) »

Да я бы рад в поле отображения добавленных файлов добавить вторую колонку, НО т.к. возможности NSIS ограничены, я не могу этого сделать, по крайней мере сейчас, а возможно это или нет я пока не знаю наверняка, особо не было нужды реализовать...
Как это невозможно увидеть и редактировать? А если нажать в этом большом поле на какой-либо пункт, соответствующие пути отобразятся в двух полях ниже, а чтобы отредактироват, достаточно внести изменения и для подтверждения нажать на OK :)

Цитата:

Цитата MKN
а иногда(да почти всегда) и с сворачиванием окна программы, »

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

Цитата:

Цитата MKN
И возможно ли при добавлении файла/папки в проект исключить нажатие на "ОК", т.е. чтобы папка/файл сразу добавлялись в поле окна проекта при соответствующем клике из предоставляемого окна выбора ? »

Интересно...и что это будет? а как насчет пути назначения? Ну выбрали мы папку в предоставляемом диалоге, данные записались в проект...а директория назначения? Ну можно сделать это, например, только при условии, что заполнено поле папки назначения

MKN 18-01-2010 14:52 1323465

Цитата:

Цитата K.A.V.
А если нажать в этом большом поле на какой-либо пункт, соответствующие пути отобразятся в двух полях ниже »

Пардон, не обратил внимания. Как то не привычно так...
Цитата:

Цитата K.A.V.
Ну можно сделать это, например, только при условии, что заполнено поле папки назначения »

Дык это само собой подразумевается - сначала выбор пути назначения. А вот только зачем подтверждать нажатием "ОК" уже выбранный контент ? Ведь, к примеру, в окне "Добавление файла в проект" я и так нажимаю кнопку "Открыть". Вот и пусть это действие и является подтверждением. Было бы на одно лишнее движение меньше...

ps Пока я редактировал-корректировал пост, осознав свою невнимательность, ты уже ответил... :)

K.A.V. 18-01-2010 15:10 1323475

Цитата:

Цитата MKN
Что то отображается только одно поле с исходным местоположением (просто дублируется информация из "большого" окна)... »

Дак так и должно быть, это сделано для того, чтобы можно было редактировать путь назначения и удалять всю запись

Цитата:

Цитата MKN
А без добавления колонки разве нельзя ? Заносить в поле файлы и папки, которые выбираешь не с исходным путём (местоположения), а с путём назначения »

Мне вот интересно, зачем это нужно? В поле отображаются файлы/папки для упаковки, а если хотим посмотреть/изменить/удалить папку назначения, то просто нажимаем на соответствующий путь...разве это неудобно?

Цитата:

Цитата MKN
Хотя бы так. И уже на одно лишнее движение будет меньше... »

Сделаем :)

Я вот тут думал над ещё одним улучшением
читать дальше »

Например, нам нужно добавить разные папки/файлы в проект, гуляем по любимому проводнику, и из проводника перетаскиваем файлы/папки в окно программы, путь перемещаемого файла/папки сразу заносится в небольшое текстовое поле (как папка для упаковки)
Ещё не уверен, что получится реализовать, поэтому спрашиваю, тратим время на выяснение, можно ли реализовать данную возможность? :)

MKN 18-01-2010 15:22 1323487

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

Предложенное тобой улучшение с перетаскиванием контента будет весьма полезно.

Да и ещё. Опция "поверх всех окон" для программы - осуществима ?

K.A.V. 18-01-2010 15:31 1323498

Цитата:

Цитата MKN
А возможно ли сделать запоминание пути, откуда добавляешь файлы или папки ? »

Сделаем

Цитата:

Цитата MKN
Предложенное тобой улучшение с перетаскиванием контента будет весьма полезно. »

Значит попробую реализовать

Цитата:

Цитата MKN
Опция "поверх всех окон" для программы - осуществима ? »

Вот это вряд-ли... :(
Мне данная возможность тоже нужна, но в NSIS она просто не реализована...разве что писать собственную библиотеку на С для реализвации данной возможности, и то, может не получиться...

K.A.V. 18-01-2010 19:40 1323685

Небольшое обновление, вся информация в шапке

MKN 19-01-2010 09:12 1324010

K.A.V.,
Просто замечательно получилось ! Особенно с "перетаскиванием"

Такой вопрос: в Дополнительные возможности/Проверить установленное ПО - возможно ли сделать при обнаружении установлено (или нет) ПО, в "решение" добавить пункт "Выполнить действие" (с выбором оного).

К примеру, обнаружена уже установленная старая версия VC++, а требуется более новая, на что следует "реакция" :

Сообщение о найденной версии и выбор вопросов-предложений:
"Установить новую ?" (указать путь к исполняемому файлу)
"Удалить старую и установить новую версию ?" (указать команду для удаления (путь к штатному Анинсталлеру и если нет такового, то к cmd файлу удаления) и путь к исполняемому файлу, запускаемому после удаления)
"Прекратить установку ?"

(ессно VC++ (или какое либо другое ПО) , имеется в проекте).

K.A.V. 19-01-2010 14:13 1324270

Цитата:

Цитата MKN
Такой вопрос: в Дополнительные возможности/Проверить установленное ПО - возможно ли сделать при обнаружении установлено (или нет) ПО, в "решение" добавить пункт "Выполнить действие" (с выбором оного). »

Возможно, НО реализация данной возможности требует времени, т.к. много мелочей и условий.

Единственный вопрос по этому:
Цитата:

Цитата MKN
указать команду для удаления (путь к штатному Анинсталлеру »

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

MKN 19-01-2010 15:13 1324322

Цитата:

Цитата K.A.V.
мы же точно не знаем полный путь к файлу деинсталлятора... »

Вообще то, как правило, знаем, да и найти не проблема. Другое дело, если его нет по каким то причинам. Тогда для удаления можно запустить командный файл с необходимым содержимым.
Цитата:

Цитата K.A.V.
НО реализация данной возможности требует времени »

Конечно, конечно... В таком деле спешка не допустима. Потихоньку, при желании... :)
Зато при положительном результате - программа-шедевр будет ! Прог. с такими возможностями просто нет (во всяком случае, с так легко и удобно реализуемыми возможностями)...

На далёкую перспективу - организовать бы ещё выбор компонентов проекта при установке... С чекбоксами и пр...

K.A.V. 19-01-2010 15:57 1324372

Цитата:

Цитата MKN
На далёкую перспективу - организовать бы ещё выбор компонентов проекта при установке... С чекбоксами и пр... »

Т.е. чтобы при запуске инсталлятора показывался графический интерфейс, в котором можно выбрать, какие компоненты устанавливать, я правильно понимаю? :)

MKN 19-01-2010 17:31 1324475

K.A.V.,
Да...

FreshMen85 19-01-2010 18:59 1324532

Цитата:

Цитата MKN
На далёкую перспективу - организовать бы ещё выбор компонентов проекта при установке... С чекбоксами и пр... »

о, это было бы, просто круто.

K.A.V. 19-01-2010 21:09 1324618

Это сложно в реализации, точнее как это организовать, пока у меня здравой мысли не возникло...
Ничего не обещаю, но обещаю что подумаю над реализацией :)

MKN 20-01-2010 10:47 1324940

Цитата:

Цитата K.A.V.
как это организовать, пока у меня здравой мысли не возникло... »

Несколько моих мыслей (возможно и не оч. "здравых", я не спец по NSIS) :) ) по выбору компонентов при установке :

В фейсе программы, под строками-полями выбора контента и пути добавляется ещё одна строка, и рядом с ней кнопки + "выборочная установка компонента" и кнопка - "отменить выбор".

При выборе из списка в окне-поле "Добавление папок.файлов в проект" какого либо файла/папки и
при нажатии на кнопку + (рядом с новой третьей строкой),
этот файл/папка "попадают" в скрипте в "Section" (ессно туда же записываются и пути и пр.),
также в скрипт добавляется "!insertmacro MUI_PAGE_COMPONENTS"

В строке-поле "пишем" название компонента.

Желательно, чтобы рядом с выбранным для выборочной установки файлом/папкой в основном окне добавляемого контента, появлась какая либо метка (например, * или слово "Custom"), указывающая, что этот компонент будет выбираем при установке.

Для начала, хотя бы реализовать простейший вариант выбора, "без тонкостей"...

K.A.V. 20-01-2010 12:59 1325047

Ход мыслей уловил :)

Как насчет других данных, добавленных проект, т.е. далее же необходимо будет не просто распаковывать файлы в зависимости от какого-либо компонента, а напримем, создать ярлык, зарегить библиотеку в какой то определённой секции...добавлять в каждый диалог с дополнительной возможностью выбор секции?

Хотел уже написать ещё вопрос, но в голове уже возник ответ :)

MKN 20-01-2010 16:52 1325235

Цитата:

Цитата K.A.V.
добавлять в каждый диалог с дополнительной возможностью выбор секции? »

Хотел бы уточнить момент - каково будет поведение установщика, если скажем в "общих" доп возможностях указана регистрация DLL, которая находится в не выбранной секции ? На нет и суда нет ? Или вывалится сообщение-ошибка, что мол запрашиваемый компонент отсутствует ? По хорошему, то чего нет - никаким, даже указанным воздействиям, не должно подвергаться... Так ли ?

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

K.A.V. 20-01-2010 17:18 1325251

Цитата:

Цитата MKN
каково будет поведение установщика, если скажем в "общих" доп возможностях указана регистрация DLL, которая находится в не выбранной секции ? »

Т.е. если DLL не относится ни к одному компоненту установки? Я думаю просто сбрасывать все не отнесённые к компонентам команды в отдельную функцию, которая будет выполнена после установки всех компонентов

K.A.V. 21-01-2010 19:01 1326283

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

Habetdin 21-01-2010 23:43 1326481

K.A.V., как насчет добавления всплывающих подсказок (Tooltips) к кнопкам? Приходится нажимать на них для изучения функций :)

K.A.V. 21-01-2010 23:52 1326489

Ну насколько я знаю, NSIS такую возможность не предоставляет (вроде есть в InstallOptionsEx, но это другая DLL и может некоторое не работать, то что сейчас работает), поэтому, только если писать собственную библиотеку на С :)
Уделю время данной возможности, посмотрю, может и получиться написать библиотеку :)

K.A.V. 22-01-2010 00:44 1326534

Цитата:

Цитата Habetdin
K.A.V., как насчет добавления всплывающих подсказок (Tooltips) к кнопкам? Приходится нажимать на них для изучения функций »

Будет :)
Если осуществлю все задумки, следующая версия будет...не плохой :)

ZverBY 22-01-2010 16:31 1327054

K.A.V.!!!

Что за $ в "Добавление папок/файлов в проект", для чего он.

Создай справочник по SFX Creator 2.1

K.A.V. 22-01-2010 17:29 1327107

Цитата:

Цитата ZverBY
K.A.V.!!!
Что за $ в "Добавление папок/файлов в проект", для чего он.»

Вставляет переменные в строку справа

Цитата:

Цитата ZverBY
Создай справочник по SFX Creator 2.1 »

Высший пилотаж, а как насчет файла Help.chm в папке с программой? :drug:

MKN 05-02-2010 13:06 1339674

K.A.V.,
Получается что-нибудь с "Выбором компонентов" SFX Creator_ом ?

K.A.V. 06-02-2010 16:44 1340627

Привет, MKN
До этого ещё не дошел, занимался созданием поддержки GUI для инсталлятора (приветствие, лицензия и т.д.), делать только начал, потом был опять занят... :(
Сначала будет поддержка одного вида интерфейса NSIS - "Modern UI", затем добавлю "Ultra Modern UI".
Возможность использования стандартного UI NSIS не будет.

По вопросу.
Скорее всего получиться должно, думаю сделать так:

1 страница, на которой создаются/редактируются/удаляются сами "Секции" (т.е. компоненты), ещё на этой же странице думаю сделать такой же элемент DropList со списком "Дополнительных возможностей" как в главном окне программы, при выборе элемента из списка будет перечисление созданных действий пользователя и юзер сможет тут же отнести какую-либо команду в какой-либо компонент

Также, возможно, SFX Creator будет ShareWare

MKN 07-02-2010 14:07 1341286

Цитата:

Цитата K.A.V.
Также, возможно, SFX Creator будет ShareWare »

Да... Так часто бывает. Все хорошие и бескорыстные альтруистические начинания в конце концов сводятся к коммерции... (это просто мысли вслух, не более :) )

K.A.V. 07-02-2010 14:42 1341314

Цитата:

Цитата MKN
Также, возможно, SFX Creator будет ShareWare » »

Если даже и будет, то на форумчан OSZone.net это мало отразится, т.е. программа будет стоить дешевле, для некоторых (для "Старожилов" форума, для вас, кто активно высказывает свои мысли/пожелания и т.д.) лицензия будет и вовсе бесплатна

K.A.V. 08-02-2010 10:04 1341884

Цитата:

Цитата K.A.V.
Также, возможно, SFX Creator будет ShareWare »

SFX Creator всегда будет распространяться по FreeWare лицензии, вне зависимости от того, какие функции будут добавлены в программу.

Это решение окончательное :)

Немного разгрузился, сегодня думаю попробую заняться реализацией выбора компонентов

loveaboveall 08-02-2010 12:04 1341970

Всем Добрый день. У меня вопрос по SFX Creator или его старой версии UnPackerCreator. Сейчас я пользуюсь старой версией, поскольку она меня полностью устраивает, но нет одной важной и необходимой для меня функции - функция самоудаления архива. В новой версии, как это сделать я тоже не нашел ((.
Пример. Допустим есть упакованый архив называется 123.exe и находиться в папке C:\Downloads
Мне нужно чтобы файлы архива распокавались в ту же папку т.е. C:\Downloads (это можно сделать указав путь распаковки как $EXEDIR), а после распаковки удалил бы сам себя, т.е. удалил файл 123.exe. Метод извлечение во временную папку не подходит. Метод запуск после извлечения, батника или скрип-файла в котором прописана команда удалить архив тоже не подходит.
Может, данную функцию можно реализовать с помощтю команд NSIS...
Если кто что знает, помогите. Заранее спасибо.

K.A.V. 08-02-2010 12:20 1341981

Шапку обновил, старые версии программы не обсуждаются

Цитата:

Цитата loveaboveall
необходимой для меня функции - функция самоудаления архива »

И в новой версии нет

Цитата:

Цитата loveaboveall
Метод запуск после извлечения, батника или скрип-файла в котором прописана команда удалить архив тоже не подходит. »

Цитата:

Цитата loveaboveall
Может, данную функцию можно реализовать с помощтю команд NSIS.. »

С помощью функций реализовать никак не получится, т.к. все функции хоть как будут выполняться в пределах нашего же инсталлятора...
Есть только 1 вариант, добавлять ещё 1 маленький EXE файл в наш инсталлятор, который при запуске будет удалять инсталлер

loveaboveall 08-02-2010 15:49 1342144

Цитата:

Есть только 1 вариант, добавлять ещё 1 маленький EXE файл в наш инсталлятор, который при запуске будет удалять инсталлер
Выходной файл будет один?
После распаковки этот маленький EXE будет тоже удаляться?
Будет ли реализована данная функция?

K.A.V. 08-02-2010 17:04 1342202

Цитата:

Цитата loveaboveall
Выходной файл будет один? »

Да, маленький EXE будет упакован в ваш инсталлятор как и другие ваши файлы

Цитата:

Цитата loveaboveall
После распаковки этот маленький EXE будет тоже удаляться? »

Распакауется во временную папку, оттуда удалится после перезагрузки

Цитата:

Цитата loveaboveall
Будет ли реализована данная функция? »

Пока ничего сказать не могу, т.к. уже очень много задумок на новую версию :)
Да и к тому же, многим ли данная возможность то нужна? Удалять сам распаковщик... :biggrin:

MKN 09-02-2010 09:02 1342731

Цитата:

Цитата K.A.V.
Да и к тому же, многим ли данная возможность то нужна? »

Сомнительная возможность...
ИМХО, сначала бы основные, действительно необходимые инсталлятору функции, внедрить и отладить...
А уж предлагаемым "самоликвидатором" и пр. экзотикой, потом заниматься, когда абсолютно делать нечего будет... :)

K.A.V. 05-03-2010 21:28 1362020

Повторный патч-исправление. [ Скачать патч ]

В данном патче полностью исправлено исчезание/появление главного окна программы при добавлении/удалении/редактировании файлов (даже НЕ происходит мигание окна программы) :up
Решил выложить, т.к. думаю, что многих нервирует данное поведение программы, как вообщем то и меня :)

Если вдруг, заметите ошибки - сообщайте
Также, в данном патче оптимизирована функция определения файлов проекта

О выходе новой версии, пока, говорить ничего не буду ;)
:oszone:


P.S.
За новую иконку-логотип программы хочу сказать спасибо korsar77



Добавил позже
Дошел до создания граф интерфейса по выбору компонентов, вот сижу ломаю голову, как и что сделать, как будет более удобно пользователю...
Хочу выслушать комменты, т.к. неохото потом переписывать неудобный интерфейс :)

Ссылка на изображение

tom2 09-03-2010 18:30 1364556

K.A.V., В функции Выполнения приложений, незапускаются файлы с розширением js или vbs, если можеш исправь.
Спасибо!

K.A.V. 09-03-2010 20:37 1364672

tom2, js/vbs файлы не являются исполняемыми, поэтому и они не исполняются (исполнять их нужно обращаясь к $SYSDIR\wscript.exe), т.е. команда будет примерно такой:
Код:

$SYSDIR\wscript.exe "$TEMP\MyFile.js"
Это нужно добавлять возможность разделения типа запуска (необходимо добавить возможность "Shell запуск"), тогда будут выполнены действия с типом файла в соответствии с установленными настройками в системе, вот после добавления данной возможности нужно будет указать только путь к js/vbs файлу

tom2 09-03-2010 21:34 1364727

K.A.V., спасибо ищё раз, всё работает, будет возможность обязательно отблагодарю

MKN 10-03-2010 12:25 1365152

K.A.V.,
Из рисунка окна выбора компонентов не совсем ясен механизм выбора... Например, выбрав"компонент №1", где будет видна принадлежность к нему файлов/папок с путями и пр. ?
А что означает опция "Заблокирован" ? Компонент присутствует в списке, но использоваться в проекте не будет ?

Сам фейс вполне нормальный, на практике бы скорее опробировать... :)

PS Хорошо бы в "Добавить выполнение приложения" в строке "Выполнить" исполняемый файл (с путём) автоматом заключать в кавычки

K.A.V. 10-03-2010 15:36 1365289

Цитата:

Цитата MKN
Например, выбрав"компонент №1", где будет видна принадлежность к нему файлов/папок с путями и пр. ? »

В поле справа

Цитата:

Цитата MKN
А что означает опция "Заблокирован" ? »

Это значит, что выбор Установить/Не установить при установке приложения будет недоступен
Например, мы устанавливаем главные файлы программы (предоположим AIMP.exe), переносим этот файл в группу "Главные файлы" и ставим галочку "Заблокировать", при установке пользователь не сможет снять галочку для отмены установки данного компонента :)

Цитата:

Цитата MKN
PS Хорошо бы в "Добавить выполнение приложения" в строке "Выполнить" исполняемый файл (с путём) автоматом заключать в кавычки »

Во всех полях проекта кавычки выставлять не нужно, за исключением случаев, когда мы прописываем команду к исполняемому файлу как путь к какому либо файлу, например
Код:

$SYSDIR\wscript.exe "$TEMP\MyFile.js"

MKN 10-03-2010 18:47 1365459

Цитата:

Цитата K.A.V.
Во всех полях проекта кавычки выставлять не нужно »

У меня без кавычек не сработал запуск .msi файла... ($TEMP\vcredist.msi)

K.A.V. 10-03-2010 19:07 1365475

Цитата:

Цитата MKN
У меня без кавычек не сработал запуск .msi файла... ($TEMP\vcredist.msi) »

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

MKN 11-03-2010 08:59 1365955

K.A.V.,
Ну как я могу с тобой спорить... :) Просто вот так получается...
Ещё маленькое пожелание - в "Добавить выполнение приложения" рядом с "Выполнить" добавить бы кнопочку выпадающего списка переменных, ( как сделано в регистрации DLL)

MKN 12-03-2010 09:39 1366741

K.A.V.,
У меня вот такое необычное предложение - дополнить SFXCreator, модулем CustomAppsBuilder.

Что он будет делать :

При создании проекта с выбом компонентов по желанию пользователя можно будет создать (скомпиллировать) дистрибутив состоящий ТОЛЬКО ИЗ ВЫБРАННЫХ компонентов.
Т.е. иметь возможность сконструировать дистрибутив согласно требований пользователя к его составу-содержимому.

Зачем это надо ?

Это будет очень кстати, когда пользователю из целого ряда составляющих дистрибутив компонентов, требуются только несколько конкретных, а весь дистрибутив иметь совершенно нецелесообразно.

Например, дистрибутив Nero состоит из множества отдельных приложений, а пользователю очень часто нужны лишь несколько или вообще одно конкретное.
Дистрибутив ACDSee включает ряд функций, мнгие из которых не всем нужны. Список огромный.


Я делаю полный дистрибутив с возможностью выбора устанавливаемых компонентов-приложений, а пользователь - хочет установит всё или будет устанавливать с выбором, а хочет пересоберёт выбранное в ОТДЕЛЬНЫЙ дистрибутив.
Размер которого значительно МЕНЬШЕ исходного базового "конструктора" и содержит в себе лишь то что НЕОБХОДИМО этому пользователю.

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

Я думаю функцию CustomAppsBuilder_а оценят многие пользователи, особенно в теме создания аддонов.

Практически это может выглядеть так:

В фейс SFXCreator_а добавляется кнопка создать проект с функцией CustomAppsBuilder. При её активности и будет создаваться дистрибутив с "добавочными" кнопками :

Установить приложение (т.е классическим образом)
Cоздать новый дистрибутив из выбранных компонентов

Как вам такая идея ?

K.A.V. 12-03-2010 12:00 1366850

Цитата:

Цитата MKN
В фейс SFXCreator_а добавляется кнопка создать проект с функцией CustomAppsBuilder. При её активности и будет создаваться дистрибутив с "добавочными" кнопками :
Установить приложение (т.е классическим образом)
Cоздать новый дистрибутив из выбранных компонентов »

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

MKN 12-03-2010 12:54 1366895

K.A.V.,
В том то и дело, что сама установка, как таковая, нас в данном контексте не интересует. Вся соль в создании нового дистрибутива из выбранных компонентов уже имеющегося созданного кем то дистрибутива-конструктора (с помощью SFX Creator дополненного CustomAppsBuilder_ом) . Т.е. выбирает пользователь необходимое и создаёт вновь новый дистрибутив, сам из УЖЕ сделанного (кем то) изначально базового дистрибутива. И делает это рядовой пользователь - элементарно, нажатием одной кнопки. Только эту кнопку надо "заложить" в конструкцию базового дистрибутива.
Для этого при компилляции такого варианта дистрибутива-конструктра, в него будет добавлен кусочек NSIS_а и скрипт для исполнения желаний... Размер этого добавочного хозяйства не большой, да и не в размере дело, а в получении принципиально нового продукта-конструктора. Такого ещё нигде не было и по моему, будет оч. полезно и здорово... :)

Т.е. ещё раз на примере - предположим имеется дистрибутив-конструктор с выборочной установкой 10 компонентов . Он уже сделан и включает в себя модуль CustomAppsBuilder (терминология не важна).
А пользователю надо - одному только 1 и 9 компонент, второму - только 4,5,6 и 8 и т.д. Представь сколько комбинаций-пожеланий. А ВЕСЬ исходный дистрибутив ему не интересен, хотя конечно он может установить из него только то что ему необходимо.

А не интересен, потому что исходный занимает размер , скажем 300М, а выбранных компонентов всего на 10.
Для интеграции софта в XP на 700M CD, это оч. даже существенно. Да и зачем иметь дистрибутив, из которого надо, скажем только 1/10 состава ? Не просить же автора исходного дистрибутива сделать заказную комбинацию компонентов...

А уж для сборок софта типа как на основе ТоталКоммандера, где сотни программ, а нужны далеко не все, такой вариант вообще не заменим.
Или когда из сотен вариантов разных Templates для оформления, (не важно чего) выбираются только приглянувшиеся. А тут исходный материал вообще может быть и в несколько гигов... А мы выбираем только то что надо, скажем, на 100M и делаем из выбранного дистрибутив



Т.е. базовый дистрибутив - это основа для конструирования. И очень простого - выбрал что надо, нажал кнопку "пересобрать" - и вот он готовый новый заказной дистрибутив, сделанный самим пользователем, которому совсем не надо разбираться в дебрях инсталляций.

Нечто похожее когда то было для пересборки дистрибутива Офиса 2003. Выбрал что надо, и вот вместо исходного 500метрового монстра у пользователя - 50M (это когда оставляется только Word и Exel)

K.A.V. 12-03-2010 14:53 1367004

:o
Я сначала не правильно понял суть пожелания, но после последнего сообщения до меня дошло, что требуется реализовать :)
1. Остаётся пара недель (а потом армия), поэтому нужно выложить хотя бы следующую версию
2. Это сложно в реализации и по времени и вообще по механизму (но осуществимо я думаю), т.к. нужно упаковывать сам NSIS в создаваемый дистрибутив, параметры проекта, разработать сам механизм и т.д. и т.п., поэтому я хоть как не успею сделать это до ухода...но на будущее это будет моей первоочерёдной задачей, т.к. возможность эта очень уж уникальная и интересная, и было бы приятно создать такого "монстра" :)

MKN 12-03-2010 15:59 1367054

K.A.V.,
Цитата:

Цитата K.A.V.
Остаётся пара недель (а потом армия) »

Я бы послужил за тебя, на время работы над проектом :)

Scorpkoms 12-04-2010 18:54 1390994

Доброго времени! Не получается создать ярлык,что не так?
Что прописать в пустом поле?
Спасибо.

K.A.V. 12-04-2010 19:20 1391004

Здравствуйте, Scorpkoms
В поле "Командная строка ярлыка" прописывать значение не обязательно (здесь указываются параметры, которые нужно передавать приложению)

У вас не правильно указано значение в поле "К какому файлу создаём ярлык", в поле нужно указать полный путь к файлу (с переменной), например, если указанный вами файл CDex.exe располагается в главной директории программы, в поле укажите следующее:

Код:

$INSTDIR\CDex.exe
Прочитайте в справке к "SFX Creator" страничку "Переменные" ;)

Scorpkoms 12-04-2010 20:19 1391027

K.A.V.,
Спасибо,попробую,справку читал,но не совсем понял,я впервые здесь.
Прочитал всю ветку,но хотелось бы примеров,для новичков.

Mishechka 27-04-2010 11:51 1401646

После запуска программы у меня появляется такое окно:
[IMG][/IMG]

Это как понять?
Спасибо.

Mishechka 28-04-2010 13:56 1402562

Так программа работает или нет?
Спасибо.
:clapping:

MKN 29-04-2010 09:25 1403096

Mishechka,
Программа работает нормально. Что у тебя происходит - трудно сказать...

Scorpkoms 08-06-2010 22:06 1430277

Доброго времени!
Как я понял автор проекта в армии,кто нибудь может мне помочь в компиляции,
выдает ошибку,кстати только в одной сборке.

smvpvl 05-10-2010 07:01 1511640

Спасибо автору, отличная программа. Но никак не пойму, как создать в ней файл деинсталляции?! Вобщем с помощью этой программы (версия 2.1.1) создал инсталлятор, добавил ключи реестра, ярлыки на рабочий стол и в меню пуск-программы. Всё работает на ура. Но при создании файла деинсталляции, ничего не создается. Читал справку, но она ещё "сырая", ничего по поводу этого в ней не нашел.

Smith_Wesson 27-12-2010 17:04 1575621

Ни как не пойму, как прописывать пути? Приведите пример нормального Ini-файла типа: Директория установки=
У меня, почему-то все файлы распаковываются в С:\ не зависимо от того, где лежит сам *.exe.
Не могу разобраться хоть убей - если мне нужно к примеру, с корня С:\ распаковать в корень Д:\ - ни чего не помогает.

Scorpkoms 28-12-2010 09:48 1576058

Smith_Wesson,
В шапке скрин,смотри дир.для установки,слева кнопка,выбирай.

Smith_Wesson 28-12-2010 10:52 1576095

Разобрался... Объясняю, для тех кто не понял - см. как на скрине:

Директорию для распаковки файлов из архива ХХХ.ехе, нужно прописывать в позицию 1, соответственно получаем ini-файл следующего вида:
[Главные_настройки]
Имя=ХХХ
Компрессор=LZMA
Размер словаря=3
Solid архив=1
Директория установки=$ProgramFiles
Выходной файл=C:\Program Files (x86)\SFXCreator\projects\ХХХ\ХХХ.exe
Прогресс распаковки=0
[Файлы для упаковки]
1=C:\Program Files (x86)\SFXCreator\projects\XXX
1_to=D:\BACKUP\TOOLS
[Выполнить]
1=1.bat

Для чего нужна позиция 2 (Директория установки=$ProgramFiles)- я так и не понял... В поле Директория установки= - можно прописывать что угодно. На распаковку в конечную директорию, оно ни как не влияет. Или я чего-то не понял? Ведь путь для распаковки архива, прописывается здесь: 1_to=D:\BACKUP\TOOLS еле-еле установил это методом тыка. Мануал для проги, совсем не понятный...
И ещё... Так и не разобрался, с командой "Добавить операцию в реестре" - приведите, плиз, пример ini-файл, аналог команды REG ADD
Есть вот такая строка:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\ХХХХХ" /v CPI /t REG_SZ /d 12 /f - экспортируется ключ "CPI" с параметром "12" - как эта строка должна выглядеть в конечном ini-файле программы? Как добавляются ключи /v /t /d /f - об этом в мануале тоже, ни слова....

Smith_Wesson 30-12-2010 16:31 1577895

Возникла ещё одна проблема:
в архивчике находится батник run.bat, который так же распаковывается в директорию D:\BACKUP\TOOLS, и должен запуститься при выполнении .ехе
[Выполнить]
(1=D:\BACKUP\TOOLS\run.bat)
.
Вот его содержимое:
@echo off
. . .
DEL /F /Q %systemdrive%\XXX.exe
DEL %0%


При этом, содержимое батника, корректно отрабатывается, а вот удаление .ехе (самого архивчика), почему-то не происходит. Хотя, если запустить батник отдельно, все нормально удаляется?
Даже не знаю, в чем может быть причина. Кто-нибудь поможет?

K.A.V. 30-04-2011 03:44 1667841

Цитата:

Цитата Smith_Wesson
При этом, содержимое батника, корректно отрабатывается, а вот удаление .ехе (самого архивчика), почему-то не происходит. Хотя, если запустить батник отдельно, все нормально удаляется?
Даже не знаю, в чем может быть причина. Кто-нибудь поможет? »

Здравствуйте, дело в том, что программа установки ждёт окончания выполнения запускаемых файлов, а т.к. при работе вашего BAT файла инсталлятора занят, т.е. "висит" в процессах, ожидая окончания работы BAT файла, поэтому сам инсталлятор удалиться не может.

Ранее в сообщениях уже предлагалась реализация самоликвидации инсталлятора, но т.к. данная возможность не несёт в себе критичную важность для проекта, разработка данной функции не началась.

MKN 30-04-2011 10:29 1667901

K.A.V.,
С возвращением ! Служба интерес к творческому развитию "дела NSIS_а" надеюсь не подорвала ? :)

K.A.V. 01-05-2011 13:38 1668420

Цитата:

Цитата MKN
С возвращением ! Служба интерес к творческому развитию "дела NSIS_а" надеюсь не подорвала ? »

Спасибо)
Интерес не подорвался, только вот сейчас в этот огромный исходник придётся не один день вникать, сложно всё так кажется после такого перерыва... :)

K.A.V. 17-05-2011 10:01 1677668

Вообщем...пока всё идёт оочень медленно, пока полностью в коде не разберусь и всё не вспомню... :(
Пока вот сижу и думаю (добавляю поддержку графического интерфейса), на странице где идёт разброс команд по
компонентам...если начать разброс соответсвующих команд по компонентам, то потом врядли удастся вернуть эту команду в ту же позицию группы (это важно, например, для группы исполнения, где порядок иногда очень важен), где она была изначально (ну например если вы ошиблись и отнесли команду не в тот компонент), единственное, можно будет сохранить группу, в которой находилась команда...

хотел бы обратиться к участникам форума, кто ПЕРЕсобирает дистрибутивы на основе NSIS инсталлятора, ваши скрипты определения установленного ПО будут весьма полезны для SFX Creator

MKN 25-05-2011 16:46 1682381

Цитата:

Цитата K.A.V.
ваши скрипты определения установленного ПО будут весьма полезны для SFX Creator »

Думаю, что коллекционировать скрипты определения установленного ПО не оч. хорошая идея.

Во-первых, таких скриптов будет без счёта, а во-вторых, вполне достаточно проверять наличие имени приложения в ключе, куда его помещает путное ПО :
SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\имя приложения

Для бестолкового же ПО, проверять наличие конкретных (определённых пользователем в скрипте) ключей и файлов. (Так вроде уже реализовано в SFX Creator_е) С перспективой определения и сравнения версий исполняемых файлов и библиотек и выдачи соответствующего сообщения...

Отдельно надо выделить проверку наличия установленного ПО посредством MSI установщиков.

Делается это обычно по коду продукта. Либо упрощённо, по наличию этого кода в соответствующем ключе реестра либо более "тщательно", но громоздко с помощью макроса опубликованного kotkovets и включенного в справочник.

Сейчас файл нужного msi инсталлятора, приходится вручную открывать с помощью MSI редактора и в таблице Property искать ProductCode, который и использовать в скрипте.

Вот тут есть смысл попробовать упростить пользователю задачу по нахождению этого кода продукта в MSI установщике.

Для автоматизации действий, можно экспортировать Property с помощью известной утилитки MsiDb.Exe (и ключей) в файл.
http://msdn.microsoft.com/en-us/libr...%3Dvs.85).aspx
Результат экспорта - "специализированный" файл, с расширением idt, - по сути обыкновенный текстовый файл, в котором
находим строку ProductCode, напротив которой нужное нам значение - {разные цифирки}.

Скрипт должен изъять это значение и поместить куда надо... (Т.е. надо найти в файле Property.idt строку, начинающуюся с "ProductCode" и поместить в переменную всё что есть в этой строке в скобках {}, кроме самой записи ProductCode. )

Это было бы действительно весьма полезно... (для начала, сделать хотя бы только утилитку для извлечения ProductCode из MSI файла)

K.A.V. 25-05-2011 18:28 1682458

Я не отказываюсь ни от каких идей и пожеланий для улучшения SFX Creator, конечно, всё что вы MKN предлагаете (и предлагали до этого), весьма интересно, заманчиво и полезно, я стараюсь реализовать всё, что в моих силах (вы надеюсь уже не раз в этом убедились)

Я приму на заметку данное пожелание и оно будет рассмотрено после выхода версии 2.2 eXtended (ну или по крайней мере, когда я уже допишу её, будем думать над этим)

Iska 25-05-2011 18:47 1682466

Цитата:

Цитата MKN
для начала, сделать хотя бы только утилитку для извлечения ProductCode из MSI файла »

MKN, попробуйте такое (без обработки ошибок, VBScript):
Код:

Option Explicit

Const msiOpenDatabaseModeReadOnly = 0

Dim strPath2MSIFile
Dim strProductCode


strPath2MSIFile = "C:\Program Files\Windows Installer 4.5 SDK\TOOLS\orca.msi"

With WScript.CreateObject("WindowsInstaller.Installer")
        With .OpenDatabase(strPath2MSIFile, msiOpenDatabaseModeReadOnly)
                With .OpenView("SELECT * FROM Property WHERE Property = 'ProductCode'")
                        .Execute()
                       
                        With .Fetch()
                                strProductCode = .StringData(2)
                                WScript.Echo strProductCode
                        End With
                End With
        End With
End With

WScript.Quit 0

Цитата:

Код:

{4F34C602-4D6D-470D-A2A0-59E4F25DDBF2}


kotkovets 26-05-2011 00:45 1682694

Цитата:

Цитата MKN
громоздко с помощью макроса опубликованного kotkovets и включенного в справочник »

есть пример куда проще определять:
читать дальше »
Код:

OutFile "GetMSI.exe"

!define GetMSIProduct `!insertmacro _GetMSIProduct`
!macro _GetMSIProduct VAR ProductCode
  System::Call 'msi::MsiQueryProductStateA(t "${ProductCode}") i.s'
  Pop ${VAR}
!macroend

Section MSIProduct
  ${GetMSIProduct} $0 "{837b34e3-7c30-493c-8f6a-2b0f04e2912c}" ;на примере VC++ 2005 SP1
  StrCmp $0 5 0 +2
  MessageBox MB_ICONINFORMATION|MB_OK "$$0 = $0$\nЭтот продукт установлен!" IDOK
  StrCmp $0 `-1` 0 +2
  MessageBox MB_ICONINFORMATION|MB_OK "$$0 = $0$\nЭтот продукт не установлен!" IDOK
  StrCmp $0 `-2` 0 +2
  MessageBox MB_ICONINFORMATION|MB_OK "$$0 = $0$\nОшибка в ProductCode!" IDOK
SectionEnd


Цитата:

Цитата MKN
Это было бы действительно весьма полезно... (для начала, сделать хотя бы только утилитку для извлечения ProductCode из MSI файла) »

C этим соглашусь на 100%, даже лучше свою функцию написать и зашить внутрь SFX или виде библиотеки с базой основных кодов продуктов msi: Microsoft .NET Framework, Microsoft Visual C++, MSXML, Java(TM).

MKN 26-05-2011 10:05 1682808

Цитата:

Цитата Iska
попробуйте такое (без обработки ошибок, VBScript) »

А нельзя ли организовать скрипт так, чтобы он обрабатывал находящийся рядом с ним .MSI файл ?
Чтобы не прописывать ничего в самом скрипте (иначе какая уж тут автоматизация...)

K.A.V. 26-05-2011 10:26 1682829

Цитата:

Цитата Iska
WScript.Echo strProductCode »

я так понимаю, что здесь выскакивает MesssageBox? Было бы неплохо скидывать значение в файл в любой форме (либо значение в первой строке текстового файла, либо конструкцией INI файла)

MKN 26-05-2011 18:16 1683195

Вот такой скрипт нашёл (экспортирует всё из Property в xls файл ... Но наверное какую то малость можно подправить для ProductCode :
Код:

' Export File Table from a given MSI Database to an Excel Spreadsheet

Option Explicit

Const msiOpenDatabaseModeReadOnly = 0


On Error Resume Next
Dim installer : Set installer = Nothing
Dim szMSI

szMSI = InputBox("Enter MSI File (including full path)", "Select MSI", "")
DIM folder : folder = InputBox("Enter Folder to Write Table to...", "Select Export Folder","")

Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError

Dim database : Set database = installer.OpenDatabase(szMSI, msiOpenDatabaseModeReadOnly) : CheckError

Dim table, view, record

table = "Property"

Set view = database.OpenView("SELECT 'Name' FROM _Tables")
view.Execute : CheckError
Do
Set record = view.Fetch : CheckError
If record Is Nothing Then Exit Do
Export table, folder : CheckError
Loop
Set view = Nothing


Export table, folder : CheckError


Wscript.Quit(0)

Sub Export(table, folder)
Dim file :file = table & ".xls"
database.Export table, folder, file
End Sub


Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbNewLine & errRec.FormatText
End If
Wscript.Echo message
Wscript.Quit 2
End Sub


Iska 26-05-2011 19:53 1683241

Лирическое отступление.
читать дальше »
Я пользую файловый менеджер «Far Manager», посему: я работаю с командной строкой Far Manager'а, у меня стандартным хостом WSH назначен консольный «cscript.exe» (вместо «wscript.exe»), я пользую полные пути к скриптам вместо того, чтобы плодить скрипты по папкам.

Так делаю я. У Вас, MKN, K.A.V., я понимаю, процесс работы организован несколько иначе. Скрипт из #141 я выложил, чтобы Вы могли оценить, работает ли вообще сие, и гож ли подобный подход для Вас. Стало быть, я попробую написать по Вашим предпочтениям, но Вы должны мне разъяснить, почему нужно именно так, а не иначе. Хорошо?

Насколько я понимаю, Far Manager'ом никто из Вас не пользуется (или он не является основным Вашим файловым менеджером), так?

Почему я сие хочу выяснить: дело в том, что в его командной строке очень легко, быстро и удобно указывать путь к WSH-скрипту, лежащему в папке A, как параметр скрипта — путь к некоему msi-файлу, лежащему в папке B, результат работы скрипта перенаправить в некий файл в папке C. Ну, а находиться (иметь текущим каталогом) при этом можно вообще некую папку D ;). Например:
Код:

cscript.exe "C:\Program Files\My Scripts\GetProductCodeFromMSI.vbs" "C:\Program Files\Windows Installer 4.5 SDK\TOOLS\orca.msi" 1>"E:\Песочница\0056\ProductCode.txt"
Или, например, просто получить «ProductCode» в редактор:
Код:

edit:< cscript.exe "C:\Program Files\My Scripts\GetProductCodeFromMSI.vbs" "C:\Program Files\Windows Installer 4.5 SDK\TOOLS\orca.msi"
Впрочем, сие есть моё видение, но буду признателен Вам, если Вы опишете, как работаете Вы, как предполагаете (и хотели бы) использовать скрипт в Вашей работе. Может быть, Вам нужно его вызывать из редактора, где Вы пишете скрипты NSIS. А пока…


Цитата:

Цитата MKN
А нельзя ли организовать скрипт так, чтобы он обрабатывал находящийся рядом с ним .MSI файл ? »

Можно. Например, так будут обрабатываться все MSI-файлы, находящиеся рядом с файлом скрипта:
Код:

Option Explicit

Const msiOpenDatabaseModeReadOnly = 0

Dim objFSO
Dim objFile

Dim strProductCode


Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

For Each objFile In objFSO.GetFolder(objFSO.GetParentFolderName(WScript.ScriptFullName)).Files
        If UCase(objFSO.GetExtensionName(objFile.Name)) = UCase("msi") Then
                With WScript.CreateObject("WindowsInstaller.Installer")
                        With .OpenDatabase(objFile.Path, msiOpenDatabaseModeReadOnly)
                                With .OpenView("SELECT * FROM Property WHERE Property = 'ProductCode'")
                                        .Execute()
                                       
                                        With .Fetch()
                                                strProductCode = .StringData(2)
                                                WScript.Echo strProductCode
                                        End With
                                End With
                        End With
                End With
        End If
Next

WScript.Quit 0

Цитата:

Цитата K.A.V.
я так понимаю, что здесь выскакивает MesssageBox? Было бы неплохо скидывать значение в файл в любой форме (либо значение в первой строке текстового файла, »

1. Использовать хост «cscript.exe» и перенаправлять вывод в нужный файл.
2. Прямой вывод в текстовый файл из скрипта. Вопрос — в какой именно: где задать его имя, где он будет находиться.

MKN 27-05-2011 09:18 1683495

Iska,
Задача (в моём понимании) на данном частном отрезке "проекта SFX Creator" такова :

получить (экспортировать) из msi файла его ProductCode (и ещё ProductName), которые будут использоваться (записаны) в коде NSIS скрипта. Экспорт произвести в обыкновенный одноимённый txt файл. Например, в ProductCode.txt и ProductName.txt

О местонахождении : думаю, что лучшее местонахождение в процессе подготовки и работы, и msi файлов и результирующих файлов ProductCode.txt и ProductName.txt - это $TEMP. Но это для проекта.

Для работы же, предложенного тобой vbs скрипта, местонахождение и исходного *.msi и результирующего txt файлов - рядом со скриптом vbs.

PS DrWEB c ума сходит от этого скрипта и не даёт сохранять... Что делать ?

MKN 27-05-2011 10:47 1683548

Если рассматривать эту часть проекта , как отдельную утилиту формирования NSIS кода для MSI установки, то происходить будет следующее :

Но сначала ещё немного лирики. :) На кой нам получать ещё и ProductName ? А на той, чтобы видеть над прогрессом установки не бестолковое мельтешение устанавливаемых файлов (или отсутствие оного), что обычно и наблюдаем по умолчанию, а видеть то, что конретно в данный момент устанавливается. Полученный ProductName и будем использовать в DetailPrint "Installing....

Следующий момент. Если с установкой одного msi пакета всё более-менее ясно, то как быть когда их придётся устанавливать несколько ?
Вот конкретный пример, когда я пересобирал отдельное приложение из гигантского пакета Adobe Creative Suite CS5 , для которого пришлось устанавливать аж 8 разных msi пакетов ! (Хотя по сути это были, расчленённые на отдельные дистрибутивы, составляющие их разных VC++... Но разрабам же виднее...)
Как быть с такими случаями в нашем случае ? Я бы предусмотрел в скрипте выбор для разных вариаций msi пакетов.
Например, для начала пусть присутствуют 9 чекбоксов для выбора. Тут есть нюансы, но про это позже...

Пакеты эти, надо предварительно подготовить, создав (для моего примера) 8 папок с именами 1...8, и в каждую из которых, поместить нужные msi дистпибутивы.

Т.е. , что получается :

Запускаем скомпилированный скрипт.

Отмечаем нужные для установки msi пакеты (msi1...msi8)

Отмеченные папки 1...8 с содержимым копируются в $TEMP. В каждую папку копируется файл vbs скрипта (чтобы не было путаницы).

Vbs скрипт начинает свою работу, создав в каждой папке ProductCode.txt и ProductName.txt.

Данные из ProductCode.txt и ProductName.txt заносятся в соответствующие переменные и записываются в код нового созданного файла msi.nsi. Где он будет создан, не критично. К примеру, в C:/myMSInsi

В этот файл msi.nsi записывается (пример на основе кода из справочника, наверное можно и иначе) :
Код:

!define MSIGETPRODUCTINFO '!insertmacro MsiGetProductInfo'
Var MSI_PRODUCT
!macro MsiGetProductInfo PRODUCTCODE PROPERTY
и т.д.

Section 1
  SetOverwrite on
  ${MSIGETPRODUCTINFO} "{переменная для кода продукта 1 msi пакета)}" "ProductName"
  и т.д.
SectionEnd

Сколько выбрано MSI пакетов для установки - столько запишется и секций.

Ну и в конце "подчищаем" за собой, удаляя не нужное.

Готовый код из файла msi.nsi используем для дальнейшей работы.

Моё сочинение наверняка спорно, потому прошу принять участие в "доводке" и совершенствовании...

kotkovets 27-05-2011 13:24 1683652

MKN, а почему бы всю работу не поручить "бейсику" скрипту vbs - пущай код возврата (установлен - не установлен по коду продукта и пути) пишет в файлик, далее код возврата анализирует код NSIS. Есть мысль по этому поводу - сделать плагин к NSIS на досуге.
Примерно так:
1. Исполняемый файл *.exe который заводится препроцессором NSIS и этот файл *.exe (vbs скрипт) заинклудит массив номерков в код NSIS на этапе компиляции проекта
2. Далее плагин на этапе инсталяции обрабатывает массив номерков возвращает код возврата NSIS
3. Код NSIS анализирует полученные данные от плагина.

MKN 27-05-2011 15:35 1683706

Цитата:

Цитата kotkovets
а почему бы всю работу не поручить "бейсику" скрипту vbs »

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

kotkovets 27-05-2011 16:46 1683756

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


Iska 05-06-2011 09:51 1688648

Цитата:

Цитата 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}


kotkovets 12-06-2011 11:21 1693028

Цитата:

Цитата Iska
А в чём пишете NSIS-проекты? »

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

Iska 18-06-2011 05:36 1696815

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

Цитата:

Цитата kotkovets
и плагин для msi уже написал для NSIS относительно недавно: »

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

kotkovets 18-06-2011 21:32 1697211

Цитата:

Цитата Iska
а не для сборки самой инсталляции, так? »

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

Iska 18-06-2011 21:53 1697229

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

K.A.V. 30-07-2011 19:05 1722900

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

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

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

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

MKN 30-07-2011 21:12 1722960

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 , но лучше... :)

FreshMen85 31-07-2011 10:21 1723114

Цитата:

Цитата K.A.V.
т.к. проект кроме вас больше никто не обсуждает »

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

HiddeN_Ra 03-08-2011 01:04 1724888

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

K.A.V. 03-08-2011 21:36 1725502

Здравствуйте, HiddeN_Ra
Цитата:

Цитата HiddeN_Ra
Как мне прописать, чтоб перед установкой файла сделать проверку запущен он или нет и если он уже исполнятся, пропустить его установку и запуск. »

У SFX Creator'а существует возможность исполнить собственные NSIS функции только перед и после запуска процесса распаковки файлов, если такой вариант вам подходит, могу написать для вас код

HiddeN_Ra 04-08-2011 00:50 1725593

K.A.V.,
Очень бы был Вам признателен ;) за код
я писал команду taskkill /im test.exe /f
перед распаковкой файла, это вызывает ошибку.

Добиться хотел следующего:
Добавить два файла допустим test.exe и test.log в %ProgramFiles%\test после распаковки назначить атрибут
attrib +h %ProgramFiles%\test.exe и запустить test.exe c ключом -startclient -nogui
И один файл test.bin поместить в %allusersprofile%

Компилю всё работает прекрасно, но при повторном запуске возникает ошибка test.exe уже выполняется, Вот как бы или заново его стартануть или проверять, что он исполняется и пропустить его установку, знаний не хватает :(

Большое спасибо за программу и за помощь!!!

K.A.V. 04-08-2011 08:33 1725663

Вложений: 2
Распакуйте прикреплённый архив "Plugins.rar" в папку "<SFX Creator>\NSIS\Plugins"
Распакуйте прикреплённый архив "Code.rar" в папку "<SFX Creator>\NSIS\Include\custom"

В папке "<SFX Creator>\NSIS\Include\custom" будет 2 файла:

KillProcess.nsh - при указании данного файла в проекте, SFX Creator сначала завершит указанный вами процесс, затем запустит новый и дождётся его завершения

FindProcess.nsh - при указании данного файла в проекте, SFX Creator проверит, исполняется ли указанный процесс, и, если он НЕ ЗАПУЩЕН, исполняется указанное вами приложение

Эти 2 файла необходимо отредактировать перед включением в проект!
Выбирайте 1 любой, какой метод вам нужен.

Чтобы включить данные файлы в проект, сделайте следующее:
1. В "Дполнительных возможностях" выберите пункт "Выполнить собственные функции"
2. В поле "Include файл" пропишите либо "KillProcess" либо "FindProcess"
3. В поле "Функция" аналогично, либо "KillProcess" либо "FindProcess"
4. Ну и выберите, когда хотите выполнить указанную вами функцию

Я добавил там описание, если чего не поймёте - пишите сюда, поможем ;)

HiddeN_Ra 04-08-2011 21:30 1726043

Спасибо огромное, отпишусь как чего :Beer:

HiddeN_Ra 13-08-2011 16:34 1731112

Вложений: 1
K.A.V.,
Делаю всё по инструкции но при компиляции выдаёт ошибку. Пробывал по всякому пути прописывать но всё одно, не компилит. Думал сначала что в семёрке глючит мож чего, но в хр тоже самое. Вроде всё правильно делаю. Отсутствовал неделю, вот два дня сижу все варианты испробовал пока не получается...
Вот прикрепляю требуемые файлы для определения ошибки описанные в шапке

K.A.V. 13-08-2011 18:46 1731162

HiddeN_Ra, вы файлы редактировали перед упаковкой? У меня сомнения в оригинальности файлов...
Есть одна строчка, которая у вас прописана не так, как прописывает её программа...Почему?

В файле <SFXCreator>\NSIS\Include\SoftInclude.nsh
Ваша строка выглядит так:
Код:

!include "custom\KillProcess"
а должна иметь вид:
Код:

!include "custom\KillProcess.nsh"
Специально для теста я загрузил чистый архив версии 2.1 и скопировал ваш файл проекта, после чего попытался откомпилировать, почему-то строка приняла правильный вид...


Но я нашел и 1 ошибку в программе (не в ту позицию в коде прописывается тип сжатия), она будет устранена позже, а пока, чтобы её обойти нужно подредактировать файл <SFXCreator>\NSIS\Source.nsh

Откройте его и переместите нижеуказанные строки в самый верх, сохраните файл
Код:

SetCompressor LZMA
SetCompressorDictSize 3

После чего для компиляции запустите <SFXCreator>\NSIS\compile.bat

HiddeN_Ra 13-08-2011 19:28 1731187

K.A.V.,
Огромное СПАСИБО!!!
После описанных Вами операций всё скомпелилось и работает, и самое главное никаких ошибок не вылетает, Ваш скрипт который убивает процесс работает на все 100. Тут тоже никаких больше ошибок!!!
Ещё раз спасибо, удачи во всём.... :Beer:

One THE darK 14-08-2011 02:45 1731379

K.A.V., можно ли с помощью вашей программы установить скринсейверы для установки их с дистрибутива windows хр? И какие нужны параметры для реестра? Хочу попробовать именно с помощью вашей программы это сделать, спасибо.

K.A.V. 14-08-2011 08:55 1731413

Цитата:

Цитата One THE darK
K.A.V., можно ли с помощью вашей программы установить скринсейверы для установки их с дистрибутива windows хр? И какие нужны параметры для реестра? »

One THE darK, ну здесь ведь ничего сверхъестественного нет...
1. Чтобы система приняла заставку, достаточно файл заставки *.SCR скопировать в каталог System32
2. Чтобы скопированная заставка была установлена у пользователя в качестве заставки по-умолчанию, достаточно прописать в реестр 1 параметр:

Код:

HKEY_CURRENT_USER\Control Panel\Desktop
Имя параметра SCRNSAVE.EXE, значение устанавливаем как полный путь к файлу

Для записи в реестр вы можете использовать метод RunOnce с файлом реестра, либо исполнением команды reg add

HiddeN_Ra 14-08-2011 11:06 1731435

Рано обрадовался, звука небыло и окон море открыто было не увидел ошибу :(
Правильно я отредактировал файл, пробЫвал и с кавычками и без, что то неправильно делаю...

Код:

Function KillProcess
KillProcDLL::KillProc test.exe  ; укажите образ процесса
execwait $PROGRAMFILES\test.exe ; Ждём завершения исполнения файла
FunctionEnd

Программа у меня запускается с ключом test.exe -startclient -nogui и нормально закрыть удается только через батник

Код:

taskkill /im test.exe /f
Закидываю это всё в SFX Creator, компилю с исправлением Source.nsh

Но test.exe -startclient -nogui запускается раньше чем выполняется команда taskkill /im test.exe /f
Ну вернее инструкции выполняются одна за другой не дожидаясь завершения taskkill /im test.exe /f начинает выполняться test.exe -startclient -nogui
И естественно вылетает ошибка. При повторном запуске ошибки нет. Вобщем через раз ошибка....

Наверняка где то ошибаюсь, не могу понять где....

One THE darK 14-08-2011 11:10 1731439

дело вот в чем пробовал с помощью winrar sfx внести "хранители экрана", но как то без результатно, да к тому же пропадают заставки которые должны установиться с аддона. (все происходит во время установки os) вот и хочу добавить пару других заставок.

K.A.V., а спомощью вашей программы вот такого можно добиться? http://www.oszone.net/6477
Если да, то помогите сделать....

K.A.V. 14-08-2011 11:25 1731444

HiddeN_Ra, как я понял написанная мной функция не ждёт завершения? Т.е. именно в ней отработка "не правильная"?
Можно попробовать добавить проверку после снятия процесса, вот так:

Код:

Function KillProcess
KillProcDLL::KillProc test.exe  ; укажите образ процесса
FindProcDLL::FindProc "test.exe" ; укажите образ процесса
StrCmp $R0 "1" -2 0
execwait $PROGRAMFILES\test.exe ; Ждём завершения исполнения файла
FunctionEnd

Если процесс будет найден, будет повторная попытка его снятия

Цитата:

Цитата One THE darK
все происходит во время установки os »

One THE darK, на Т-12/Т-13 могу с уверенностью сказать, что созданный EXE файл отработает как нужно, на NSIS я писал T-12 Installer и она работает на ура
На Т-39 не тестировал

HiddeN_Ra 16-08-2011 00:23 1732705

K.A.V.
Всё норм зашуршало ;)

silione 26-08-2011 21:15 1739948

Скачал, установил, попользовался.
Удобно :)
Хотелось бы несколько пожеланий - процесс вставки дополнительных возможностей сделать бы попрозрачнее, в смысле чтобы можно было посмотреть из главного меню программы какие возможности и с какими параметрами были уже добавлены в проект. Расширить справку, в плане работы для "чайников", например добавить всплывающие подсказки для всех пунктов, даже кажущихся очевидными. В идеале еще было бы здорово добавить возможность менять шкурку инсталлятора. И, чуть не забыл, как-то процесс компиляции более наглядным сделать, в процентах чтоли, а то сидишь и не знаешь когда она там закончится если файл большой.

И вопрос - Для чего нужно второе поле $ для задания переменных? Если всего одна папка в инсталлятор входит нужно там указывать туже переменную что и директории для установки?

ZverBY 26-08-2011 21:57 1739984

K.A.V., а когда релиз SFX Creator 2.2 ???

K.A.V. 27-08-2011 01:05 1740101

Цитата:

Цитата silione
Хотелось бы несколько пожеланий - процесс вставки дополнительных возможностей сделать бы попрозрачнее, в смысле чтобы можно было посмотреть из главного меню программы какие возможности и с какими параметрами были уже добавлены в проект »

Сейчас голова болит о другом, более нужном функционале, поэтому насчет этого пока ничего говорить не буду

Цитата:

Цитата silione
например добавить всплывающие подсказки для всех пунктов, даже кажущихся очевидными »

Это уже в разработке, уже добавлены всплывающие подсказки для элементов главного окна программы (при наведении мышки). Думаю в отдельных диалогах они так же появятся.

Цитата:

Цитата silione
В идеале еще было бы здорово добавить возможность менять шкурку инсталлятора »

Это вы про саму программу SFX Creator? Я что-то не понял О_о

Цитата:

Цитата silione
И, чуть не забыл, как-то процесс компиляции более наглядным сделать, в процентах чтоли, а то сидишь и не знаешь когда она там закончится если файл большой »

Максимум что могу сделать - показать процесс обработки компилятором строк кода, т.е. не скрывать окно самого компилятора, но нужно ли это...Возможно здесь будет реализована настройка, которая будет контролировать показ/скрытие окна компилятора

Цитата:

Цитата silione
Для чего нужно второе поле $ для задания переменных? Если всего одна папка в инсталлятор входит нужно там указывать туже переменную что и директории для установки? »

Директрия установки будет храниться в переменной $INSTDIR, поэтому указывайте её
Для чего? А если вам с самой программой нужно распаковать библиотеку в System32 каталог...вот здесь то вы и укажите переменную $SYSDIR, это как небольшой пример...

Цитата:

Цитата ZverBY
K.A.V., а когда релиз SFX Creator 2.2 ??? »

Сам не в курсе :dont-know

silione 27-08-2011 12:06 1740238

Цитата:

Цитата K.A.V.
Это вы про саму программу SFX Creator? Я что-то не понял О_о »

Ну да, хотя это уже эстетика и ясен пень что не важно.
Цитата:

Цитата K.A.V.
Максимум что могу сделать - показать процесс обработки компилятором строк кода, т.е. не скрывать окно самого компилятора, но нужно ли это...Возможно здесь будет реализована настройка, которая будет контролировать показ/скрытие окна компилятора »

Ну хотя бы так, чтобы компиляция проходила в отдельном окне которое свернуть/развернуть можно, а то ж ее запускаешь, и мало того что непонятно когда она закончится, так еще потом и все окна приходится сворачивать чтобы просто полюбоваться на надпись что компиляция еще в процессе.

По поводу дополнительных функций...
У меня что-то не работает запуск файлов после извлечения.
Решил попробовать сделать для себя инсталлятор 2010 офиса. Выбрал чтобы после распаковки запускался файл setup.exe, но он так и не запускается. Может нужно абсолютный путь к файлу указывать? Нигде про это не уточняется просто. Да и размер инсталлятора почему-то почти на 100 метров больше чем созданный 7z самораспаковывающийся архив с той же функцией запуска.

Ах да, и еще мне для этого инсталлятора явно не хватило функции удаления распакованных файлов после окончания установки, думаю что стоит ее добавить в общий список дополнительных функций, дабы чистить за собой временные папки.

K.A.V. 27-08-2011 13:09 1740267

Цитата:

Цитата silione
Выбрал чтобы после распаковки запускался файл setup.exe, но он так и не запускается. Может нужно абсолютный путь к файлу указывать? »

Ну вооьще то да...откуда распаковщик знает, в какой папке расположен ваш файл, указывайте путь с переменной, например если распаковываете в каталог $TEMP, то и указывайте путь для запуска как $TEMP\setup.exe

Цитата:

Цитата silione
Да и размер инсталлятора почему-то почти на 100 метров больше »

Возможно стоит использовать опцию "SOLID архив" и указать побольше значение "Размер словаря"?
Только вы можете получить ощибку после изменения при выборе параметров сжатия, об этой ошибке я писал пару постов назад

Цитата:

Цитата silione
Ах да, и еще мне для этого инсталлятора явно не хватило функции удаления распакованных файлов после окончания установки, думаю что стоит ее добавить в общий список дополнительных функций, дабы чистить за собой временные папки. »

Ну пока для этого есть возможность "Добавить файловую операцию" или "Выполнить собственные NSIS функции", также можно использовать скрытый запуск BAT файла после распаковки файлов (предварительно его распаковав), как вариант.
Над реализацией данной возможности подумаю

Smith_Wesson 21-11-2011 16:12 1799941

Цитата:

Цитата K.A.V.
т.к. проект кроме вас больше никто не обсуждает, и идеи новые приносите только вы, такое ощущение, что программу только для вас пишу »

ну, напрасно Вы так. Активно юзаю вашу прграмулину, в повседневной жизнь. Главное преимущество (как для меня), это то, что созданные "SFX Creator"-ом инсталляторы, ни кто кроме меня не сможет расковырять (по крайней мере, рядовые криворукие юзера) и внести в них изменения. Проблему само удаления инсталлятора и файлов, решил через добавления записи в ветку реестра RunOnсeEx, с последующим ребутом системы.

K.A.V. 24-11-2011 18:51 1802595

Если у кого появились пожелания относительно новой версии кроме тех, которые уже озвучены в этой теме - пишем

lshusl 27-12-2011 23:05 1823739

Помогите пожалуйста. Настройка деинстолятора в Ветке Unistal что вписывать нужно? Приведите пример какой нибудь. Пробовал разное не получается. Нет файла uninst.exe

Vladimir_02 09-04-2012 11:09 1896133

а нельзя ли добавить возможность создания многотомных SFX...

K.A.V. 09-04-2012 12:38 1896162

lshusl, галочку поставили в самом верху "Создать программу удаления"?


Цитата:

Цитата Vladimir_02
а нельзя ли добавить возможность создания многотомных SFX... »

Нет

Как вариант, используйте несколько своих RAR/ZIP архивов с данными, а с помощью созданного SFX Creator'ом запускайте внешний распаковщик

K.A.V. 09-04-2012 14:09 1896229

Кстати говоря скоро Beta версия :blush2:
Будет с графическим интерфейсом, но пока что без возможности сделать установку с выбором компонентов
Изменений будет много, в некоторых диалогах повысится удобность, а также будет отдельный диалог для просмотра/редактирования/удаления данных "Дополнительных возможностей"

Пока что, будет всё "сырое", так что количество ошибок думаю будет огромным
Ну, а если ещё остались те, кто всё ещё готов принять участие в развитии утилиты, отписывайтесь

Всё настолько туго, как будто это первая версия... :sorry:

K.A.V. 09-04-2012 21:19 1896594

Ладно, пообщаюсь сам с собой, буду здесь дневник программиста вести :lol:
Вообщем, удивительно, что даже никто из тестеров не сказал, что в программе полностью не работает функция деинсталлятора, забавно :drug:
Ошибок куча, работы много, к концу недели думаю уже будет результат, почти 2 года в "простое" конечно же уже Shift+Del много кто понажимал на иконке с архивом программы SFX Creator :biggrin:

Ну ничего, триумфальное возвращение впереди :mail1: :clapping:

Сейчас SFX Creator уже прошел первый успешный тест создания установщика с графическим интерфейсом :tongue:


Ну а вот так примерно будет выглядеть новенький мини-установщик SFX Creator'a

Nun-Nun 10-04-2012 09:44 1896875

Цитата:

Цитата K.A.V.
Ну а вот так примерно будет выглядеть новенький мини-установщик SFX Creator'a »

Вот несколько замечание-предложений :) по "новорождённому":
1) выражение "Создать ярлык для запуска программы на рабочем столе" сформулировано не совсем грамотно, правильнее было бы "Создать на рабочем столе ярлык для запуска программы" или просто "Создать ярлык на рабочем столе";
2) к вышеозвученному чекбоксу добавьте, если не сложно, чекбокс "Создать ярлык в панели быстрого запуска".

K.A.V. 10-04-2012 10:42 1896897

Цитата:

Цитата Nun-Nun
1) выражение "Создать ярлык для запуска программы на рабочем столе" сформулировано не совсем грамотно »

Цитата:

Цитата Nun-Nun
2) к вышеозвученному чекбоксу добавьте, если не сложно, чекбокс "Создать ярлык в панели быстрого запуска". »

Этот "набросок" внешнего вида распаковщика SFX Creator'a был сделан ещё перед моим уходом в армию (почти 2 года назад :unsure: )
Изменю его немного, заменю логотип и надпись
Галочку на добавление ярлыка в панель быстрого запуска добавлю


P.S.
Уже прошел тест 2-ой графический интерфейс, SFX Creator сможет создавать ваши архивы с графическими интерфейсами Modern UI и с более красивым Ultra Modern UI (даже сможете сами выбрать скин)
Для поддержания интереса к новой версии, могу сказать, что с графчиеским интерфейсом вы сможете подключить и "Задний фон установки", а также "Показ изображения перед запуском установщика"
Единственный пока минус в графическом интерфейсе, это невозможность сделать установщик с выбором компонентов...Это сложновато и будет позже

Сейчас уже устранил много ошибок, даже удивляюсь как программу используют люди то :biggrin:

И ещё...Теперь при компиляции проекта не будет этого "баннера" посередине экрана, SFX Creator на вермя компиляции будет свёрнут в трей, если вы захотите увидеть прогресс компилирования, то сможете нажать на иконку в трее и SFX Creator покажет вам окно NSIS компилятора с выполняемыми действиями
:up

K.A.V. 10-04-2012 18:54 1897155

Цитата:

Цитата K.A.V.
с графчиеским интерфейсом вы сможете подключить и "Задний фон установки", а также "Показ изображения перед запуском установщика" »

А там уже и до проигрывания MP3 файлов во время установки софта не далеко :yes:

Кстати после исправления с неработоспособностью деинсталлятора, немного расширил количество информации, добавляемой в апплет "Установка и удаление программ"
Клац =)

В выходные потестируем, ну по крайней мере работу графических интерфейсов :)

alert30 10-04-2012 19:50 1897200

K.A.V., собираюсь сделать установщик из вашего компиляторщика (вот например: HyperSnap 7), после этого ошибка компиляции. Файлы упакованы 7-Zip-ом. Спасибо.

K.A.V. 10-04-2012 20:41 1897233

alert30, возможно завышенное значение параметра "Размер словаря", в коде это строчка
Код:

SetCompressorDictSize 128
1. Откройте файл \NSIS\Source.nsi и попобуйте закомментировать данную строчку, чтобы было так:
Код:

; SetCompressorDictSize 128
2. Запустите файл \NSIS\compile.bat для запуска процесса компиляции

Если ошибка повторится, сделайте скрин окна компилятора

alert30 10-04-2012 20:48 1897235

K.A.V., спасибо и еще в "Создать программу удаления" написано "Ветка в Uninstall", вот, а что писать в эту строку? В справочнике не написано, какой-то примерчик.

K.A.V. 10-04-2012 20:53 1897238

alert30, текущая версия полна ошибок и она не создаёт программу удаления, даже если прописаны все настройки :unsure:
К концу недели уже будет исправленная версия :beta: с множеством полезностей и улучшений, сейчас выкладывать не вижу смысла, т.к. повсюду по программе разбросаны мелкие ошибки

P.S.
А вообще в это поле вписывается строка, которая будет записана как раздел в реестре в ветку где хранится информация о программах удаления

HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ветка в UnInstall"

K.A.V. 11-04-2012 20:24 1897854

Мы печатали, мы печатали, наши пальчики устали :gulp:
Много внимания уделил графическому интерфейсу....

И поди только единицы будут подключать графический интерфейс в своих установках... :unsure:

K.A.V. 12-04-2012 10:12 1898124

Думаю уже сегодня будет Alpha версия SFX Creator'a
Версия будет естественно только для теста и в ней пока что не будет работать возможность редактирования данных группы "Дополнительные возможности", сделаю это позже, что-то много на неё времени нужно потратить, даже не знаю сколько :dont-know

А пока народ будет тестить Alpha версию я буду писать этот самый редактор
Ну и надеюсь на баг-репорты, если конечно они вообще будут :tongue:

K.A.V. 12-04-2012 13:07 1898232


Версия 2.2 Alpha, вся информация в шапке

Nun-Nun 12-04-2012 17:07 1898390

K.A.V.,

Всё-таки безграмотный вариант так и маячит в инсталляторе программы: было "Создать ярлык для запуска программы на рабочем столе"; стало "Создать ярлык на рабочем столе для запуска программы" и "Создать ярлык в панели быстрого запуска для запуска программы". Зачем этот довесок в виде "для запуска программы", если и без него понятно, что ярлыки именно для того и предназначены?! Оставьте просто "Создать ярлык на рабочем столе" и "Создать ярлык в панели быстрого запуска"! Это будет коротко и понятно. :)

K.A.V. 12-04-2012 17:23 1898400

Nun-Nun, учту :)
У вас замечания только по внешнему виду инсталлятора? :)
На то она и Alpha версия, чтобы выявить неполадки/недочеты и устранить их
К тому же, не весь функционал ещё реализован
Просто был большой перерыв, да и объём выполненных работ не такой уж и маленький, решил выложить пока то что уже есть

MKN 13-04-2012 10:50 1898732

K.A.V.,
Навскидку, несколько вопросов-замечаний :

В поле "Добавление папок\файлов в проект" почему то всегда отображается только один, последний добавленный файл
А надо бы список всего добавляемого контента. (В "Настройка диалогов" опция "Выбор компонентов" наверное поэтому не активна ?)

В окне "Настройка графического интерфейса проекта" при клике на опцию "Главные настройки" и на значок (крестик) закрытия окна - происходит перерисовка окна, (кстати довольно таки долгая)

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

Ещё - при первом запуске, при клике на кнопку поверх окон иногда происходит сворачивание в трей, иногда нет. При повторном клике почти всегда сворачивается. Зачем ?

ps Нет ли в планах, организовать опцию (или вообще отдельный проект) - конструирование собственной кастомной страницы ?
Типа как в http://coolsoft.altervista.org/en/nsisdialogdesigner.
Только этот NSIS Dialog Designer весьма паршиво и не удобно работает (а кое что вообще не работает, сплошные баги)

зы2 Перезапустил прогу, с добавлением файлов вроде порядок стал... Странно...

И ещё - при первом запуске проги, при клике на кнопку "поверх окон", иногда происходит сворачивание в трей.
И при повторном клике на эту кнопку, прога сворачивается. А при восстановлении опять надо кликать "для установки "поверх окон"
Ни к чему это...

зы3 Ан нет, опять повторяется - отображается только один последний добавленный файл !
Закономерности пока не нахожу...

K.A.V. 13-04-2012 11:12 1898744

Цитата:

Цитата MKN
В поле "Добавление папок\файлов в проект" почему то всегда отображается только один, последний добавленный файл
А надо бы список всего добавляемого контента. »

Почему-то программа перезаписывает запись при добавлении(
Посмотрю и поправлю сегодня

Цитата:

Цитата MKN
В "Настройка диалогов" опция "Выбор компонентов" наверное поэтому не активна ? »

Нет. Не активна, потому что не реализовал я возможность разделения на компоненты...сложно
Я говорил ранее, что если делать эту возможность (разделение на компоненты) то, ведь нужно сразу делать и чтобы пользователь смог отнести любую команду из "Дополнительных возможностей" в какой либо компонент, а не только разделить "Добавленные Файлы" на компоненты, с файлами было бы проще и я бы реализовал, но т.к. ещё нужно сделать возможность разброса и других команд, я приостановил это дело, есть некоторые проблемы у меня там...

Цитата:

Цитата MKN
В окне "Настройка графического интерфейса проекта" при клике на опцию "Главные настройки" и на значок (крестик) закрытия окна - происходит перерисовка окна, (кстати довольно таки долгая) »

Исправлю. Я просто не нажимаю на крестик и всегда пользуюсь кнопокой "Выход" :not-me:

Цитата:

Цитата MKN
В "Настройка диалогов" желательно сделать подсказку о том, что опции станут доступны после выбора опций в выборе диалогов »

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

Цитата:

Цитата MKN
И опять же - оч. долгая реакция на отметку чекбоксов... »

Видать это сам NSIS такой медленный...Ещё раз посмотрю, может в коде где-то лишняя проверка чего стоит

Цитата:

Цитата MKN
Вообще то не ясно, зачем дублировать выбор диалогов в настройке и в выборе... »

Чтобы в любой момент переключиться на нужную страничку настройки какого-либо диалога

Цитата:

Цитата MKN
ps Нет ли в планах, организовать опцию (или вообще отдельный проект) - конструирование собственной кастомной страницы ? »

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

А вообще, ну что я могу сделать в данном случае, разве что вызвать диалог с созданным вами самими с помощью HM NIS Edit - NSIS... а там опять же, много всяких если, или и т.д. например, что делать, если в вашем диалоге пользователь отметил галочку на каком либо элементе? Вызывать опять же написанную вами функцию на NSIS или распаковка какого-либо файла?
Здесь очень много вопросов, так что оставим это на потом, когда реализуем всё что уже задуманно

Цитата:

Цитата MKN
А при восстановлении опять надо кликать "для установки "поверх окон"
Ни к чему это... »

Зачем постоянно жать на "Поверх всех окон"??
Это переключатель - 1 раз нажал, выбрал режим и забыл, настройка сохраняется и будет действовать постоянно
А программу сворачивать в трей при клике её иконке рядом с часиками

Иногда не удобно, когда программа отображается или наоборот, не отображается поверх всех окон

При отключении "Поверх всех окон" программа не сворачивается, а её стиль окна теряет флаг TOP_MOST и переходит на самый задний план всех открытых окон

MKN 13-04-2012 11:27 1898754

Цитата:

Цитата K.A.V.
Зачем постоянно жать на "Поверх всех окон"?? »

Конечно не надо. Только зачем при клике на эту кнопку прога прячется на задний план (я и не сразу это понял) ? Лишние движения искать её окно ...

И с кастомным конструированием страниц можно вполне облегчить труд NSIS_описца.
Генерить код нужных элементов. Менять ресурсы окна диалога (размеры хотя бы, а то вручную мороки много)
Можно вполне и с координатами поэксперементировать (хотя бы чекбоксов и кнопок)
А главное - чтобы кнопка была "Предпросмотр". Т.е. поменял что либо и тут же кликнув на кнопку, скомпилил и увидел как и что.
Экономия времени.

K.A.V. 13-04-2012 11:33 1898761

Цитата:

Цитата MKN
зы3 Ан нет, опять повторяется - отображается только один последний добавленный файл !
Закономерности пока не нахожу... »

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

Как поступить?? Нужно сделать так, чтобы очищался флаг что выделен какой-либо пункт!
Дело в том, что когда мы нажимаем на "ок" (применить редактирование) то программа проверяет, выделен ли пункт в области файлов, и, если выделен, перезаписывает данные, а не добавляет (напирмер если у вас выделен пункт и вы жмёте "Добавить файл/папку" на кнопку с плюсиком)

Может сделать так, что когда нажимается кнопка с иконкой + очищать флаг выбора? И тогда чтобы редактировать запись, нужно будет вручную изменять поле где указан файл или папка для добавления?

Это мне кажется единственным способом устранения

Цитата:

Цитата MKN
Только зачем при клике на эту кнопку прога прячется на задний план »

Это отдельная моя библиотека на языке С делает, ну я в С не силён, поэтому просто прописал снятие флага у окна, поэтому оно и пропадает на самый задний план :cry:
Исправлю.

K.A.V. 13-04-2012 12:19 1898793

Архив инсталлятора обновил

Для тех, кому лень качать 3 Мб)) - качайте архивчик с изменёнными файлами (55 Кб)

Исправлено:
Некорректное поведение при добавлении файлов в проект (если хотите отредактировать существующую запись, вводите данные в поля вручную, не нажимая кнопку с иконкой плюса)
При отключении настройки "Поверх всех окон" программа не прячется за всеми существующими окнами

Всё в шапке

K.A.V. 13-04-2012 14:44 1898863

Цитата:

Цитата MKN
И опять же - оч. долгая реакция на отметку чекбоксов... »

Долго из-за скина!
Если не подгружать скин - то всё быстро загружается, НО если скин не загружать, то убого смотрятся кнопочки с иконками...Стиль темы пропадает и смотрится просто ужасно

P.S.
Поставил менее "тяжелый" скин, будет побыстрее работать

Nun-Nun 13-04-2012 14:47 1898864

Цитата:

Цитата K.A.V.
При отключении настройки "Поверх всех окон" программа не прячется за всеми существующими окнами »

Зато окно инсталлятора прячется при запуске!

K.A.V. 13-04-2012 16:01 1898919

Цитата:

Цитата Nun-Nun
Зато окно инсталлятора прячется при запуске! »

Исправил + заменил скин, вроде побыстрей работает

Medic84 13-04-2012 16:18 1898933

K.A.V., Не понимаю зачем скин нужен в простых по сути программах?
Это только увеличивает вес, увеличивает скорость работы...

K.A.V. 13-04-2012 16:30 1898939

Medic84
Цитата:

Цитата K.A.V.
НО если скин не загружать, то убого смотрятся кнопочки с иконками...Стиль темы пропадает и смотрится просто ужасно »

Когда назначаю кнопке иконку со значокм - она становится как в Windows 98/2000, т.е. пропадает стиль

Medic84 13-04-2012 21:03 1899075

K.A.V., на чем пишешь?

K.A.V. 13-04-2012 21:09 1899079

Medic84, нет, всё не так просто как кажется...
1. Программа написана на NSIS
2. Манифест подключен, стиль темы у окна программы есть, но как только назначаешь кнопке иконку - стиль именно этой кнопки становится стандартным как в Win98, смотрится не красиво - кнопки без иконки и все элементы в стиле XP, а кнопки с иконками - стандартные

Перечитал много информации уже в интернете по функциям WinAPI, но вроде как это проблемы самой XP...
Т.к. в личной переписке с kotkovets мы это обсуждали, и он сказал, что такое поведение как "потеря стиля кнопки с иконкой" - это проблема самой системы, в Windows 7 стиль не пропадает...

Medic84 13-04-2012 21:15 1899084

K.A.V., Понял. Я просто думал ты писал на популярных ЯП

K.A.V. 14-04-2012 00:20 1899203

Уважаемые пользователи программы!
У меня в голове что-то быстро осуществилось то, чего не могло произойти давным давно)))
Вообщем вроде как я додумался как всё реализовать с выбором компонентов, только работы там много :unsure:

Вот сделал набросок диалога, в котором будет "разброс" команд по вашим компонентам
Посмотрите, скажите что думаете? Удобно будет? Мне кажется да :yes:

Amigos 14-04-2012 08:13 1899291

K.A.V., а есть скрины не Creator'а а готовых SFX им сделаных?
А то я как то не увидел их ни в шапке, ни в обсуждении

K.A.V. 14-04-2012 10:46 1899356

Amigos, обновил шапку темы, под скрином программы добавил информацию

alert30 14-04-2012 13:32 1899459

Цитата:

Цитата K.A.V.
Вот сделал набросок диалога, в котором будет "разброс" команд по вашим компонентам
Посмотрите, скажите что думаете? Удобно будет? Мне кажется да »

Ну что сказать, мне полностью нравится.)))
Скриншоты можно перезалить, а то этот через 3 дня пропадёт?

K.A.V. 14-04-2012 13:46 1899467

Цитата:

Цитата alert30
Ну что сказать, мне полностью нравится.))) »

Мне тоже :up

Цитата:

Цитата alert30
Скриншоты можно перезалить, а то этот через 3 дня пропадёт? »

Перезалил, ссылки прямые :)

P.S.
Не знаю как насчет сегодня (скорее всего, но обещать ничего не буду), а завтра уже точно будет разблокирована возможность создавать пакеты инсталлятора с выбором компонентов
Сижу вот пишу, вроде идёт всё плавно без проблем :up
Ну а если за сегодня сделаю, то завтра будет уже и написан редактор уже добавленных вами команд, которые находятся в группе "Дополнительные возможности" в главном окне программы

K.A.V. 14-04-2012 23:51 1899871

У меня возникла проблема.
Суть: SFX Creator может добавлять команды на исполнение ДО и ПОСЛЕ распаковки основных файлов, например команда "Добавить выполнение приложения"

Если включать графический интерфейс с возможностью выбора компонентов, что делать с этими командами??

Блокировать их исполнение "до" и "после" и пускай пользователь их сам назначает в какие-либо секции? И, если не назначит, то пускай выполняются так как были указаны непосредственно при добавлении этих самых команд?
Голова пухнет уже :drug:

Графический интерфейс Выбора компонентов уже написал, но вот подошел к моменту "разброса" команд в коде (исходный код NSIS, который будет создавать ccode.exe) вот там и проблема, куда прописывать такие команды...
Если включать возможность выбора компонентов, получается путаница

alert30 15-04-2012 04:39 1899935

K.A.V., есть такая функция, чтобы все файлы перекинулось на SFXCreator? Просто, когда выделяю и кину 2-3 файлов на этот комплиятор, SFXCreator показывает, как один файлик.

K.A.V. 15-04-2012 09:35 1899971

Цитата:

Цитата alert30
K.A.V., есть такая функция, чтобы все файлы перекинулось на SFXCreator? »

Вот насчет этого я сомневаюсь...
Возможности NSIS ограничены, у нас реализована перетаскивание одного файла/папки, а вот как с несколькими - это вопрос
Ничего по этому поводу не могу сказать

K.A.V. 16-04-2012 09:31 1900509



Сейчас тестирую выбор компонентов...Вроде бы всё работает
В ближайшее время буду писать редактор для "Дополнительных возможностей", и думаю немножко видоизменить страничку выбора компонентов у графического интерфейса: расширить области списка компонентов и область описания

K.A.V. 18-04-2012 00:58 1901588

Какой же там ужас в коде :biggrin:
Вообщем очень большую работу проделал на текущий момент, однако выкладывать пока ничего не буду
Сделаю всё задуманное и выложу

Сейчас сидел и полностью с 0 переписывал возможность "Определение установленного ПО", там вообще ничего не работает :o
Теперь всё работает, можно даже и протестировать "определение" без компилирования самого инсталлятора, очень удобно сделал :tongue:

И вот ещё чего хотел спросить! Хотя тут мало кто отписывается, но всё же :)

Цитата:

[Аддон] FastAdd панель: При активации данной панели, главное окно программы сворачивается и остаётся только небольшая область, данная панель предназначена для более быстрого добавления файлов в проект, панель создана специально для удобства добавления файлов в проект методом перетаскивания файлов прямо из проводника.
Эта идея была ещё до моего ухода, вот сейчас вспомнил о ней, и думаю, стоит ли потом её реализовывать?


Забыл ещё добавить)
Добавил возможность блокировки созданного инсталлятора от распаковки сторонними программами архиваторами
Только у этого способа минус...Не работает при включенной проверке целостности инсталлятора

K.A.V. 20-04-2012 23:35 1903508

SFX Creator 2.3 Stable

Что нового в версии 2.3 Stable?
читать дальше »

[+] Функция обновления для поддержания SFX Creator в актуальной версии, теперь вы сможете сразу же обновить программу при выходе любых обновлений
[+] После окончания процесса компиляции, теперь сразу можно запустить созданный SFX пакет
[+] Новое всплывающее меню "Переменных"
[+] Добавлено 2 новых "Переменных" проекта: Имя программы и версия

Диалог "Управление проектами"
[+] Самоудаление SFX архива
[+] Защитить SFX архив от распаковки сторонними программами
[+] Требовать перезагрузку компьютера после установки
[+] Принудительная перезагрузка

Графический интерфейс => Выбор компонентов
[+] Добавлена возможность создавать пакет инсталлятора с выбором компонентов пользователем при установке.
Вы сможете "разбросать" все добавленные команды по компонентам, изменить как вам угодно порядок исполнения команд

Графический интерфейс => Старт меню[*] Внимание!
Изменён принцип создания ярлыков в графическом интерфейса на страничке "Старт меню"
Теперь вам необходимо указать к какому файлу создавать ярлык и во второе поле необходимо вводить только название ярлыка (без путей и без приставки расширения ".lnk"), будьте внимательны!
[+] Создать ярлыки для всех пользователей
[+] Дублировать все ярлыки на рабочий стол
[*] "Дополнительные возможности"
[+] Добавить ярлык => Добавлен переключатель создания ярлыков для всех пользователей

Диалог "Проверка установленного ПО"
[+] Диалог полностью переписан, как и весь код данной возможности: теперь всё работает как надо
[+] Добавлена возможность определить версию файла при "ручном" определении ПО по существованию файла/папки
[+] Возможность сразу же протестировать введённые вами данные "определения" перед занесением их в проект! Диалог прочитает введённые вами данные в формы и скомпилирует собственный проект только с данными определния ПО. Очень удобно!

Диалог Установка по ключу в реестре[*] Устранена 1 ошибка


Если будут найдены ошибки в работе программы - просьба сообщать незамедлительно
Со встроенной программой обновления обновляться теперь станет быстро и просто)

MKN 21-04-2012 11:26 1903617

K.A.V.,
Первое, что сразу напрягает - это поведение окон.
Если, к примеру, когда кликаем "Управление проектами", то соответственно появляется новое окно, но основное окно при этом нельзя сдвинуть с места, а оно мешает, загораживает нужное...
Но после закрытия вызванного окна, основное само перемещается (если перед этим была попытка его перемешения).

И творятся странности с перерисовкой окон. То что основное периодически подмаргивает, ещё можно терпеть, но вот вызванное окно "Главные настройки", перерисовывается с более чем секундной задержкой и на это время исчезают все элементы в окне...
Может ну его, скин ? Мешает он конкретно...

K.A.V. 21-04-2012 12:11 1903629

Цитата:

Цитата MKN
Если, к примеру, когда кликаем "Управление проектами", то соответственно появляется новое окно, но основное окно при этом нельзя сдвинуть с места, а оно мешает, загораживает нужное... »

Это исправимо, вот только нужно ли? :)
Мне просто не приятно когда главное окно постоянно появляется и исчезает, после вызова/закрытия диалогов
Кстати попробуй нажать на значок в трее когда открыт дополнительный диалог, основное окно программы скроется :tongue:

Цитата:

Цитата MKN
"Главные настройки", перерисовывается с более чем секундной задержкой и на это время исчезают все элементы в окне... »

Исчезают, потому что загружается другой INI файл диалога + чтение данных из проекта + увеличение шрифта для всех элементов, средствами NSIS я пока ничего умнее придумать не могу

Цитата:

Цитата MKN
Может ну его, скин ? Мешает он конкретно... »

Справка SFX Creator => FAQ. Часто задаваемые вопросы

Прочитайте пожалуйста, будьте так добры :tongue:
А если внимательно прочитаете, то и себя там найдёте))

P.S.
Были же отзывы о "неполной" справке к программе, в версии 2.3 Stable я постарался описать как можно больше всего

MKN 21-04-2012 13:07 1903647

Цитата:

Цитата K.A.V.
Справка SFX Creator => FAQ. Часто задаваемые вопросы
Прочитайте пожалуйста, будьте так добры »

Пардон. Не прочёл, поспешил испытывать. :) Вопрос снят.

alert30 21-04-2012 18:55 1903808

K.A.V., снова у меня ошибка компиляции, сделал точка с запятой размер словаря 128 Мб; но он снова ошибку выходит, как быть? Файл прикреплен.

K.A.V. 21-04-2012 19:32 1903816

alert30
1. В "Параметры компресси данных" в поле "Размер словаря" установите стандартное значение - 8

2. Дополнительные возможности => Показать сообщение при запуске/завершении
Уберите кавычки из текстового поля, можете заменить кавычку знаком ', это мы потом пофиксим

ps
Вы в настройках деинсталлятора прописали иконку "$DESKTOP\99.ico" которая будет отображаться в "Установка и удаление программ", у клиента то её не будет на рабочем столе...

K.A.V. 22-04-2012 15:15 1904058

Вышло обновление => 2.3.0.1

Исправлена ошибка: не работала настройка "Защита архива"
Исправлена ошибка: в некоторых текстовых полях при вводе символа кавычки вылетало "Ошибка компиляции"
Исправлена ошибка в диалоге "Удаление даных из проекта"

Скрытие главного окна при загрузке дополнительных диалогов
Исключено подключение лишних функций при компилировании


Обновляемся через встроенную программу обновления :yes:

ludmilau54 25-04-2012 11:00 1905548

При попытке компиляции сообщение "Дистрибутив поврежден"

При попытке компиляции сообщение "Дистрибутив поврежден - недопустимый код"

K.A.V. 25-04-2012 11:40 1905568

Цитата:

Цитата ludmilau54
При попытке компиляции сообщение "Дистрибутив поврежден - недопустимый код" »

SFX Creator показывает сообщение "Ошибка компиляции"??? Если да, то запакуйте файлы созданные SFX Creator'ом и прикрепите к вашему сообщению

Если SFX Creator не показывается сообщение "Ошибка компиляции", то соберите следующие файлы в архив и прикрепите к вашему сообщению, посмотрим в чем проблема

Код:

<Папка SFX Creator>\projects\ваш файл проекта.ini
<Папка SFX Creator>\NSIS\Source.nsi
<Папка SFX Creator>\NSIS\Include\SoftInclude.nsh
<Папка SFX Creator>\NSIS\Include\K.A.V._PRE_Function.nsh
<Папка SFX Creator>\NSIS\Include\K.A.V._POST_Function.nsh


ludmilau54 25-04-2012 11:56 1905580

Тестовый ini
[Главные_настройки]
Имя=Моя программа ${PRODUCT_VER}
Версия=1.0.0.0
Размер словаря=
Компрессор=LZMA
Solid архив=0
Директория установки=$ProgramFiles\MyProgram
Выходной файл=E:\test.exe
Прогресс распаковки=1
[Файлы для упаковки]
1=F:\Фото\2009 01 15
1_to=$ProgramFiles\MyProgram\

После нажатия кнопки компиляция появляется сообщение "Дистрибутив поврежден - недопустимый код", а под окошко с надписью "Создаю исходный код..." и ...все.

K.A.V. 25-04-2012 12:01 1905584

ludmilau54, мне ваш "Тестовый ini" никакой нужной информации не предоставляет
Попробуйте поставить
Код:

Прогресс распаковки=0
Там вроде после обновления до 2.3.0.1 ошибка закралась при включении показа прогресса распаковки

ludmilau54 25-04-2012 12:13 1905589

Вложений: 1
Все файлы в архиве, кроме <Папка SFX Creator>\NSIS\Include\SoftInclude.nsh по причине отсутствия

ludmilau54 25-04-2012 12:15 1905592

Без процесса распаковки тоже самое сообщение

K.A.V. 25-04-2012 12:24 1905597

ludmilau54, попробуйте заменить ccode.exe из прикреплённого архива
Этот файл от будущей версии (не доработанный), поэтому если будут какие-либо ошибки, сразу сообщите

И вообще отпишитесь, если ошибка исправится, закину тогда архив в шапку темы

ludmilau54 25-04-2012 12:32 1905604

Вложений: 1
Теперь появляется окно с процессом компиляции и за ним сразу же предупреждени " Ошибка компиляции"

K.A.V. 25-04-2012 12:39 1905608

Вложений: 1
Там подключаются библиотеки, которые будут в новой версии :)

Попробуйте распаковать эти файлы

K.A.V. 25-04-2012 13:03 1905626

wakeup.wakeup,

соберите следующие файлы в архив и прикрепите к вашему сообщению, посмотрим в чем проблема

Код:

<Папка SFX Creator>\projects\ваш файл проекта.ini
<Папка SFX Creator>\NSIS\Source.nsi
<Папка SFX Creator>\NSIS\Include\SoftInclude.nsh
<Папка SFX Creator>\NSIS\Include\K.A.V._PRE_Function.nsh
<Папка SFX Creator>\NSIS\Include\K.A.V._POST_Function.nsh

Всё же вам пишется по русски! Прикрепляйте архив с файлами от компилятора!
По таким вашим сообщениям

Цитата:

Цитата wakeup.wakeup
проблема сохранилась "Ошибка компиляции" »

Я не смогу определить причину ошибки

wakeup.wakeup 25-04-2012 13:04 1905627

Вложений: 1
K.A.V., заменил файлы из архива, проблема сохранилась "Ошибка компиляции" Соре за не соблюдение правил)))

K.A.V. 25-04-2012 13:12 1905634

wakeup.wakeup, попробуйте после получения ошибки запустить компиляцию через файл:

Код:

<SFX Creator>\NSIS\compile.bat
И сделайте скриншот окна NSIS комплиятора перед закрытием, там напишется конкретная причина ошибки

У меня ошибок не возникает

wakeup.wakeup 25-04-2012 13:22 1905644

Вложений: 1
вот скрин

ludmilau54 25-04-2012 13:23 1905645

через compile.bat появляется окно компиляции а в конце скрипта сообщение could not find "Util.nsh"

K.A.V. 25-04-2012 13:26 1905647

Вложений: 1
Архив обновил, добавил "Util.nsh"

ludmilau54 25-04-2012 13:28 1905650

Вложений: 1
полный текст в окне скрипта compile.bat

ludmilau54 25-04-2012 13:32 1905654

Получилось. Все распаковалось в указанную папку, в виде отдельных файлов. А задана для упаковки и распаковки была папка целиком.

Не сохраняется структура папок при упаковке и распаковке

K.A.V. 25-04-2012 13:36 1905657

Цитата:

Цитата ludmilau54
А задана для упаковки и распаковки была папка целиком. »

При добавлении Папки в проект, SFX Creator сканирует все файлы в указанной вами папке, и при компиляции добавляет именно не саму директорию, а файлы, которые в ней находятся
Добавляйте к папке распаковки имя папки, в которую будут распакованы файлы...

Цитата:

Цитата ludmilau54
Не сохраняется структура папок при упаковке и распаковке »

Структура чего??? Вы добавляете папку в проект, а в ней только файлы
Если бы вы добавили вот так:

Код:

Папка\Ваша папка\Ваши файлы
И указали бы "Папка", то тогда бы была сохранена структура каталога
SFX Creator это не привычные для всех программы-архиваторы

ludmilau54 25-04-2012 13:51 1905668

Вложений: 1
Теперь дошло назначение строки

ludmilau54 25-04-2012 13:54 1905672

Спасибо. Буду пробовать вашу программу дальше.

K.A.V. 26-04-2012 17:28 1906302

Вложений: 1
Следующая версия будет немного удобней, не знаю как вам, а мне кажется это будет гораздо удобней :)
Больше пока ничего говорить не буду :tongue:

ludmilau54 27-04-2012 18:15 1906846

Ждем выхода новой версии программы. Удачи!

dexx 28-04-2012 00:27 1907042

Цитата:

Цитата K.A.V.
Архив обновил, добавил "Util.nsh" »

У меня была подобная проблема - после запуска компиляции сразу выскакивало сообщение "недопустимый символ..." (что-то типа того, скрин не делал) и программа зависала. Закрывать удавалось только killом процесса... Сейчас выполнил вышеуказанное обновление и все исправилось. Работает, даже неплохо работает) Спасибо автору!

dexx 28-04-2012 12:34 1907240

K.A.V., я тестирую эту программку и все работает вполне хорошо. Весьма полезная для моих рабочих задач. Спасибо!

Но, заметил некоторый неприятный момент.

Если выбрать опцию "Показывать сообщение при завершении", это сообщение действительно появляется при завершении. Но оно не становится поверх остальных окон, а где-то за ними. Дальше получается вот что. У пользователя, который у себя распаковывает этот ехе-архив, на рабочем столе нередко открыто много разных окон и он врядли поймет, что ехе-шник отработал и готов закрыться. Некоторым выходом из ситуации является применение прогресс-индикатора распаковки. Но он отработал, показал 100% и исчез. И что дальше? Дальше пользователь подумает, что хоть инфы о завершении и не было, распаковка вероятно завершена...

В итоге, может получиться ситуация, когда процесс этой программы останется висеть еще надолго (ехе-архив не завершил работу и не самоудалился), может даже до конца рабочего дня пользователя, когда будет выключаться компьютер. А ведь нередко пользователи вообще не выключают компьютеры...

Возможно ли решить этот вопрос?

K.A.V. 28-04-2012 13:16 1907264

Цитата:

Цитата dexx
это сообщение действительно появляется при завершении. Но оно не становится поверх остальных окон, а где-то за ними. »

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

Цитата:

Цитата dexx
Некоторым выходом из ситуации является применение прогресс-индикатора распаковки. Но он отработал, показал 100% и исчез. И что дальше? »

EXE отработал распаковку файлов, и, если в вашем проекте не прописаны никакие команды на исполнение после распаковки файлов - EXE завершает свою работу

Цитата:

Цитата dexx
Дальше пользователь подумает »

Ну так включайте показ сообщения пользователю, в чем проблема? ;)

Цитата:

Цитата dexx
В итоге, может получиться ситуация, когда процесс этой программы останется висеть еще надолго »

Не висит в памяти EXE если он выполнил все прописанные вами команды
Может, конечно, такое случиться, но только в том случае, если EXE запустил указанное вами приложение и ждёт его завершения, а запущенный процесс завис, тогда и EXE с места не сдвинется, т.к. будет ждать завершения работы вашего приложения

Aquila 28-04-2012 19:50 1907450

Здравствуйте. Попробовал вашу программу, заполнил почти все поля (только нужны), жму компилировать и выплывает такая ошибка:


После я жму ОК и остаётся висеть окно:

Ничего при этом не происходит, висит и всё, даже ЦП не колышется.
Помогите пожалуйста. В чём моя ошибка или ошибка программы?

alert30 28-04-2012 19:52 1907453

Aquila, скачай в шапке вложения исправленный файл (fix file) ccode.rar, распакуй и где папка NSIS и остальное всунуть в папку из директории Program Files "SFX Creator".

Aquila 28-04-2012 20:01 1907457

alert30, А почему об этом не написано в шапке?

alert30 28-04-2012 20:04 1907458

Aquila, а я откуда знаю?

Aquila 28-04-2012 20:06 1907460

alert30, Ладно. Спасибо :sorry:

K.A.V. 28-04-2012 21:34 1907498

На моей домашней страничке теперь будет доступна информация о будущей версии, кому интересно - заходите читайте

K.A.V. 30-04-2012 19:46 1908404

Думал не доделаю всё за сегодня, поэтому дату везде 1 мая проставил :)

SFX Creator. Версия 2.4


[*] Теперь во всех диалогах отображается уже добавленные данные в "Дополнительную возможность", там можно как удалять данные из проекта, так и редактировать уже существующие записи

[+] FastAdd панель: При активации данной панели, главное окно программы сворачивается и остаётся только небольшое окошко, данная панель предназначена для более быстрого добавления файлов в проект, панель создана специально для удобства добавления файлов в проект методом перетаскивания файлов прямо из проводника.
Для активации панели служит кнопочка в главном окне программы с иконкой двойной стрелки рядом с кнопкой "Управление проектами"

[+] Новая переменная $TMPDIR
Создана специально для случаев, когда SFX архив является всего лишь распаковщиком установщика программы
При указании данной переменной как "директория установки / распаковки", файлы, распакованные в данную директорию будут автоматически удалены после выполнения всех действий SFX пакета

[+] Предоставить выбор пользователю
Данная настройка появилась выше поля "Директория для установки" в главном диалоге SFX Creator, если галочка будет отмечена, то при запуске инсталлятора пользователю будет показан диалог выбора каталога для распаковки ваших файлов.

[+] Добавлен диалог "Настройка SFX Creator"
[+] Добавлена настройка включения/отключения загрузки скина программы, а также добавлена возможность менять скины программы (скины для SFX Creator качайте сами, подробнее здесь)
[+] Добавлена возможность установить прозрачность окон SFX Creator'a
[+] Добавлена возможность загрузить последнюю версию пакета инсталлятора SFX Creator прямо из диалога настроек программы, без переходов на странички в интернете

Дополнительные возможности
[+] Определение операционной системы
[+] Проверить/закрыть запущенные приложения
[+] Установить пароль на архив

Дополнительные возможности -> Добавить выполнение приложения
[+] Добавлена возможность Shell-запуска

Проверка установленного ПО
[+] Новый тип определения: Определение поиском в реестре
[+] Новый тип определения: Определение по коду MSI продукта
[+] Автоматическое определение: добавлено 13 программ, +разделение программ на группы
[*] Оптимизация главного диалога (быстрая загрузка проекта)[*] Устранено парочка ошибок

---
Обновляемся через встроенную программу обновления, вне зависимости от вашей версии
Либо качаем архив инсталлятора из шапки темы

dexx 01-05-2012 12:55 1908676

Цитата:

Цитата K.A.V.
Ну не знаю, у меня сообщения всплывает поверх всех окон... »

Цитата:

Цитата K.A.V.
Ну так включайте показ сообщения пользователю, в чем проблема? »

Я включаю... Я имитирую действия пользователя. Открываю через "Мой компьютер" диск D и кладу туда созданный ехе-шник. Затем запускаю его (окно "D:\" остается открытым). В итоге - сообщение о завершении распаковки появляется за окном "D:\". Кстати, этой проблемы нет, если я применяю любую оболочку UI - тогда сообщение о завершении становится поверх всех окон (поверх UI). Но без оболочки (применяю только прогресс распаковки), оно не хочет становиться поверх. Может я что-то не так делаю или с моим компом что-то не так?

*Погонял последнее обновление - все работает отлично. Вообще-то, программа супер! Мне (по работе) приходится давать пользователям сложные разветвленные обновления для некоторой рабочей программы (файлы разного формата, папки с многоуровневыми вложениями, в разные места на компе). Для меня очень актуально: запихнуть все это в один файл и чтобы без лишних диалогов, да чтобы еще исходник самоудалился (пользователям это все непонятно, да и не нужно). Ваша программа справляется со всем этим без проблем. Здорово! K.A.V., спасибо за ваш труд!

K.A.V. 01-05-2012 13:31 1908687

Цитата:

Цитата dexx
оно не хочет становиться поверх. Может я что-то не так делаю или с моим компом что-то не так? »

Цитата:

Цитата dexx
*Погонял последнее обновление - все работает отлично »

Исправил как и обещал ;)

Цитата:

Цитата dexx
Ваша программа справляется со всем этим без проблем. Здорово! K.A.V., спасибо за ваш труд! »

Я рад, что вам понравилась программа :)
И вам спасибо за отзыв)

dexx 02-05-2012 11:41 1909107

Цитата:

Цитата K.A.V.
Исправил как и обещал »

Ситуация с этим сообщением осталась та же...
Возможно, это трабла лишь у моего компьютера. Сообщение остается висеть под тем окном, из которого запущен ехе-архив на распаковку. Кстати, SFX Creator, при запуске, также не становится поверх всех окон. Какое-то наваждение)
Ладно, не хочется больше вас мучать, в целом программа более чем отличная. Для себя я придумал три варианта выхода из положения:
1. Или вложу в архив свой ехе-шник, который перед распаковкой свернет все пользовательские окна;
2. Или вложу ехе-шник, который после распаковки принудительно вытянет сообщение о завершении поверх всех открытых окон.
3. Или... посмотрю, как фактически отрабатывается распаковка на реальном компьютере пользователя. Может на целевой машине все на так и плохо?.. Начну именно с этого пункта))
K.A.V., спасибо за участие в моем вопросе, спасибо за программу! Я вам очень признателен!

ludmilau54 02-05-2012 12:33 1909136

Вложений: 1
Уважаемый автор! Спасибо за то, что вы не бросили свой труд! Новая версия программы лишена тех, недостатков, которые были в предыдущей версии. Позволю себе предложить небольшое улучшение для рядового пользователя вашей замечательной программы. Если можно, то дополните пожалуйста интерфейс вашей программы следующим. После того, как пользователь указал директорию для установки (на прикреплённом рисунке стрелка 1) ему (пользователю) и в голову может не прийти, что при добавлении файлов и папок (особенно), ему нужно опять вручную указывать директорию для установки(на прикреплённом рисунке стрелка 2). Причем если он хочет, чтобы структура папок была сохранена, то сделать это он должен обязательно так как показано на рисунке(на прикреплённом рисунке стрелка 2).

K.A.V. 02-05-2012 20:21 1909381

Вложений: 1
Вышло обновление => 2.4.0.1
Обновляйтесь, кому важно (ошибка только в этом)
Исправление ошибки в ccode.exe, которая не давала использовать дополнительную возможность "Выполнить собственные NSIS функции"


Цитата:

Цитата dexx
1. Или вложу в архив свой ехе-шник, который перед распаковкой свернет все пользовательские окна; »

Можно сделать так

1. Обновитесь до версии 2.4.0.1

2. Распакуйте прикреплённый файл в каталог
\NSIS\Include\custom

3. В проекте "Дополнительные возможности" => "Выполнить собственные функции"
В поле "Include файл" вводим HideWindows.nsh
В поле "Функция" вводим HideWindows
Переключатель когда выполнить, по вашему выбору
Жмём добавить


Цитата:

Цитата ludmilau54
1) ему (пользователю) и в голову может не прийти, что при добавлении файлов и папок (особенно), ему нужно опять вручную указывать директорию для установки »

Так устроен SFX Creator, в этом его гибкость и преимущество перед различными архиваторами, которые могут создавать SFX архивы
Так что здесь я могу сделать? Разве что добавить страничку в файл справки с описанием вопроса добавления файлов
В интерфейсе никаких манипуляций не будет по этому вопросу

Цитата:

Цитата ludmilau54
2). Причем если он хочет, чтобы структура папок была сохранена, то сделать это он должен обязательно так как показано на рисунке »

Это, по моему, я вам уже объяснял...
Добавьте к "Директории установки" имя вашей папки, вот и всё решение проблемы "сохранения структуры каталога"
Либо добавляйте по такому принципу:

Папка TEST
В папке TEST есть папка "Фото ...."
При добавлении каталога в проект, указывайте папку TEST

dexx 04-05-2012 09:32 1910292

Цитата:

Цитата K.A.V.
Можно сделать так »

Да, таким методом закрывает все окна... даже страшно). Работает. Благодарю!

Еще вопрос. Возможно ли извне, с другого приложения, взаимодействовать с какими-то компонентами или функциями вашей программы? Например, с помощью стороннего приложения (.NET) запустить SFX Creator (фоном), выбрать определенный проект из ранее сохраненных и затем создать (компилировать) выходной ехе-архив? То есть, использовать какие-то СОМ-объекты, библиотеки и т.д.

K.A.V. 04-05-2012 09:40 1910294

Цитата:

Цитата dexx
Например, с помощью стороннего приложения (.NET) запустить SFX Creator (фоном), выбрать определенный проект из ранее сохраненных и затем создать (компилировать) выходной ехе-архив? »

Для компиляции проекта, необходимо запустить исполняемый файл ccode.exe со ссылкой на файл проекта, указать необходимо полный путь к INI файлу проекта, вот так:

Код:

ccode.exe /CreateCode /project=C:\Program Files\SFXCreator\projects\TEST.ini
Других взаимодействий с SFX Creator нет...т.к. программа, впринципе, не предназначенна для управления ею через командную строку

N_Alex 28-05-2012 23:53 1924207

У меня не работает функция "Показать изображение перед запуском", указываю всё правильно
Первые 3 поля слева направо: Время задержки, Скорость появления, Скорость ухода
ставил 7, 3, 3 (это же в секундах, если я правильно понял) нажимаю на просмотр и тишина. Побывал компилировать, Запустил упаковщик и тоже нет картинки. В чем может быть дело?

Система windows 7

alert30 29-05-2012 10:48 1924331

K.A.V., в компилированном инсталляторе, при запуске самого компилированного инсталлятора появилось вот это чудо (см. вложении). Можете устранить в следующей версии?

K.A.V. 29-05-2012 19:30 1924657

Цитата:

Цитата N_Alex
(это же в секундах, если я правильно понял) »

В миллисекундах (забыл указать в файле справке), в вашем случае в поля следует указывать
7000 3000 3000

Цитата:

Цитата N_Alex
нажимаю на просмотр и тишина »

Если ничего не происходит - компилировать нет смысла, т.к. код один и тот же, либо у вас ошибка в пути к файлу (необходимо прописать полный путь к существующему JPG файлу, SFX Creator сам его упакует в архив)


Цитата:

Цитата alert30
появилось вот это чудо »

alert30, в главном окне программы снимите галочку с пункта "Предоставить выбор пользователю"

N_Alex 29-05-2012 22:19 1924733

Цитата:

Цитата K.A.V.
В миллисекундах (забыл указать в файле справке), в вашем случае в поля следует указывать
7000 3000 3000 »

все нормально начал появляться. Спасибо. Но после компиляции так и не появляется.

N_Alex 06-06-2012 16:39 1929505

было бы неплохо, ещё добавить функцию установки - выбор языка.

K.A.V. 07-06-2012 11:39 1929939

Цитата:

Цитата N_Alex
было бы неплохо, ещё добавить функцию установки - выбор языка. »

У SFX Creator задача создавать SFX архив, а не пакет инсталлятора, поэтому всё, что относится к графическому интерфейсу и к созданию более-менее пакета инсталлятора - не такие важные вещи и цели не первоочерёдные (и более скажу, всё это работает в режиме теста, т.к. данной возможности я не уделяю большое внимание), поэтому, сначала у SFX Creator был реализован базовый набор возможностей, и, в частности, 1 доступный язык для создания установки

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

nyevgen 21-06-2012 10:48 1938035

Вложений: 1
Здравствуйте! Скачал последнюю версию программы. Установил, запустил и вот такое окно (см. вложение). Скачал, переустановил заново, такая же беда. У меня одного такое окно?

alert30 21-06-2012 12:23 1938090

nyevgen, видимо уже установлена старая версия SFX Creator, и при этом хотели поставить поверх старой версии.

nyevgen 21-06-2012 13:57 1938160

нет, скачал и ставил версию 2,4. до этого не было вообще установлено ничего.

K.A.V. 21-06-2012 16:52 1938284

nyevgen, даже не знаю что и сказать, первый раз вижу такое...
Может быть дело в скинах или в каких-либо библиотеках именно в вашей системе...
У вас XP? Сборка или чистая ОС?

Попробуйте отключить подгрузку скинов у программы, для этого:
Переходим в папку программы, далее в папку SYS, открываем файл Settings.ini любым текстовым редактором, там вы увидите следующую строку:

Код:

Skin=1
Замените цифру 1 на 0 и попробуйте запустить программу


Если не поможет, попробуйте переименовать также папку Skin

P.S.
Что в вашей системе с шрифтами? Может быть стоит большое увеличение, из-за этого идёт такой эффект на интерфес программы?

nyevgen 23-06-2012 13:44 1939282

Так и не понял в чем проблема. Мне пришлось переустановить ХР из-за другого случая. Устанавливал ту же самую. Все заработало. Спасибо.

Creator000 25-06-2012 22:01 1940424

а есть мануал по созданию sfx архива через winrar? ну там всякие дополнительные модули нужны будут.

alert30 26-06-2012 13:30 1940742

Creator000, этот компилятор по каждому функцию установки и удалении файлов прописан через NSIS.

K.A.V. 26-06-2012 16:17 1940855

Creator000, здесь не обсуждаются сторонние программы для создания SFX архивов, поэтому задавайте вопросы по WinRAR в другой теме, вам здесь ничего не подскажут по работе с программой WinRAR


По теме WinRAR, можете здесь почитать...
Создание SFX архива

debiloid78 27-06-2012 14:58 1941449

Здравствуйте господа.
Подскажите пожалуйста, как можно добавлять ключ реестра xх.reg в тихом режиме при ручном создании sfx?
Имею ввиду создание copy /b module.sfx + config.txt + xx.7z xx.exe
Подразумевается, что ключ реестра будет распакован в destination folder. Ведь виндуз начинает задавать глупые вопросы про добавлениие данных в реестр, если просто запустить на выполнение файл Reg после распаковки.

alert30 27-06-2012 15:09 1941452

debiloid78, не та тема.

K.A.V. 27-06-2012 17:10 1941531

debiloid78, в этой теме обсуждается работа только программы SFX Creator

По вопросу, возможно вам нужно это...
Код:

regedit /s "C:\TEST\test.reg"
"Тихий" импорт файла в реестр без запроса пользователю

debiloid78 28-06-2012 03:31 1941807

Да да, спасибо K.A.V. Я нашел этот способ.

alert30 02-07-2012 19:53 1944547

K.A.V., такой баг нашелся, к примеру; вот я перепаковываю AIDA64; начинаю тестировать, установить хочу на диск не C, а D. При окончании установки, все распакованные из моего перепакованного идет в диск C, а не D. А деинсталлятор в указанном диске (т.е. D). Есть способ устранить?

K.A.V. 02-07-2012 21:47 1944606

Цитата:

Цитата alert30
хочу на диск не C, а D. При окончании установки, все распакованные из моего перепакованного идет в диск C, а не D »

И как это возможно? Хотите сказать, что ваш инсталлятор игнорирует выбранную папку и всё равно устанавливает программу на системный раздел?
Честно говоря очень запутанно...Может вы в проекте что-то не так указываете? Проверьте в проекте строки "каталог назначения", возможно, вы что-то просто не так указали в самом проекте

alert30 03-07-2012 09:59 1944753

K.A.V., так вот, скриншот к путям инсталляции, а вот видео что случилось.

K.A.V. 03-07-2012 10:18 1944764

Цитата:

Цитата alert30
K.A.V., скоро скину видео этой ошибки. »

Лучше бы скинули файл проекта...Или исходник Source.nsi, чтобы понять, где ошибка в коде, если таковая вообще имеется

alert30 03-07-2012 10:28 1944769

K.A.V., вот.

K.A.V. 03-07-2012 11:36 1944825

alert30, вы, также как и все, всё ещё не поняли назначение второго поля, где указывается путь для распаковки выбранного файла/папки, сейчас я вынесу данную информацию в шапку, в следующем обновлении добавлю в файл справки

Объясняю:
Вы выбрали папку назначения для отдельного файла директорию $ProgramFiles, данное поле не меняется, и какой путь распаковки вы указали, такой он и будет вне зависимости, какую директорию выбрал пользователь для установки
В данном случае, у вас ошибка именно в файле проекта, вам в поле "назначение файла" нужно указывать переменную $INSTDIR (это та переменная, в которую помещается путь, выбранный пользователем или окончательный путь установки), этой переменной при запуске инсталлятора назначается директория, указанная в поле "Директория для установки"

Т.е. в вашем случае, в поле, где указывается путь для распаковки вашего файла/директории вам необходимо изменить переменную $ProgramFiles на $INSTDIR, а в поле "Директория для установки" оставить так как есть, данный путь будет установлен по умолчанию при запуске инсталлятора

alert30 03-07-2012 11:47 1944833

K.A.V., учту, еще заметил одну ошибку: в функции "графической оболочки" (там где выбрать скин Modern и пр.) ставил галочку пункт "приветствие, выбор директорий, старт меню, финиш". Так вот "старт меню" не появился в инсталляторе (в инсталляторе "приветствие, выбор директорий, финиш" и там ярлыки сохраняется и в "Пуск", в Quick Launch-ере, и в Desktop-е; а хотел в "старт меню" как бы так, чтобы пользователи выбрали и ставили галочку, какой ярлык будем сохранить), а на самом деле я же обозначил галочку пункт в компиляторе.

K.A.V. 03-07-2012 12:20 1944864

alert30, у меня показывается страница "Старт меню" после компиляции, всё нормально...
Или я вас не правильно понял? что-то где-то не создаётся?

alert30 03-07-2012 12:25 1944872

K.A.V., начинается приветствие, потом выбор папки установки, а после нажатия "Далее", начинается установка, нету там выбор папки в "Программы" для меню "Пуск", там должны еще галочки, чтоб пользователь смог сам выбрать для сохранения ярлыка меню "Пуск", Рабочий Стол и пр. Я поставил на 1. Вот проект. Обозначил жирным шрифтом и курсивом.
читать дальше »
Код:

[Главные_настройки]
Solid архив=1
Имя=AIDA64 Extreme Edition
Версия=0.2.50.2025
Размер словаря=64
Компрессор=LZMA
Файл иконки=C:\Documents and Settings\alert30\Рабочий стол\START\icon.ico
Директория установки=$ProgramFiles\FinalWire Ltd\AIDA64 Extreme Edition
Выходной файл=C:\Documents and Settings\alert30\Рабочий стол\COMPILE\Aida64EE.exe
Создать деинсталлятор=1
[Файлы для упаковки]
1=C:\Program Files\FinalWire Ltd\AIDA64 Extreme Edition
1_to=$ProgramFiles\FinalWire Ltd\AIDA64 Extreme Edition
[ShortCuts]
1=CreateShortCut "$DESKTOP\AIDA64 Extreme Edition.lnk" "$ProgramFiles\FinalWire Ltd\AIDA64 Extreme Edition\aida64.exe" "" "" "" "" "" ""
1_de=$DESKTOP\AIDA64 Extreme Edition
1_all=1
2=CreateShortCut "$SMPROGRAMS\AIDA64 Extreme Edition.lnk" "$ProgramFiles\FinalWire Ltd\AIDA64 Extreme Edition\aida64.exe" "" "" "" "" "" ""
2_de=$SMPROGRAMS\AIDA64 Extreme Edition.lnk
2_all=1
3=CreateShortCut "$QUICKLAUNCH\AIDA64 Extreme Edition.lnk" "$ProgramFiles\FinalWire Ltd\AIDA64 Extreme Edition\aida64.exe" "" "" "" "" "" ""
3_de=$QUICKLAUNCH\AIDA64 Extreme Edition.lnk
3_all=1
[VerInfo]
FileVersion=0.2.50.2025
ProductName=AIDA64 Extreme Edition
CompanyName=FinalWire Ltd.
FileDescription=RePack by alert30
LegalCopyright=FinalWire Ltd.
[Деинсталлятор]
ПодтверждениеПриУдалении=1
Уведомление_УдалениеОкончено=1
УдалятьПапкуНазначения=1
RegWrite=1
NoModify=1
UnInstKey=AIDA64 Extreme Edition
DisplayVersion=${PRODUCT_VER}
URLInfoAbout=http://www.aida64.com/
Publisher=FinalWire Ltd.
DisplayIcon=C:\icon.ico
Readme=
Comments=RePack by alert30
Contact=Денис Грешников
ProductID=
RegCompany=FinalWire Ltd.
RegOwner=FinalWire Ltd.
URLUpdateInfo=
HelpLink=http://www.aida64.com/support
[UI_mui]
EnableUI=1
MUI=Modern UI
ABORTWARNING=0
PAGE_WELCOME=1
PAGE_DIRECTORY=1
PAGE_STARTMENU=1
PAGE_FINISH=1
UP_BMP_Left=1
UP_BMP_Right=0
PAGE_LICENSE=0
PAGE_COMPONENTS=0
Welcome_Finish_BMP=C:\Documents and Settings\alert30\Рабочий стол\START\wizard.bmp
UP_BMP=
IMAGE_Splash_Delay=
IMAGE_Splash_FadeIn=
IMAGE_Splash_FadeOut=
IMAGE_Splash_File=
IMAGE_Bg_File=
BrandingText=Activated/repacked by alert30


K.A.V. 03-07-2012 12:30 1944875

alert30, на страничке "Старт меню" заполните поле "Имя директории в меню Пуск", оно не должно быть пустым...

alert30 03-07-2012 12:33 1944878

K.A.V., а где это? Там только есть "Добавить ярлык".

K.A.V. 03-07-2012 12:36 1944881

Цитата:

Цитата alert30
K.A.V., а где это? Там только есть "Добавить ярлык". »

Блин, ну вы даёте!

На главной страничке "Графического интерфейса" есть галочки, какие странички показывать, ставите галочки, и на этой же страничке выше есть радиокнопки, при нажатии на которые вы детально настраиваете ваши странички, которые будут показываться

alert30 03-07-2012 12:37 1944883

K.A.V., аут, в первый раз вижу! :)
Спасибо.

Исходные файлы конструктора | Зеркало

Дэмиен 04-07-2012 14:21 1945672

Программка супер! :clapping: Воот только никак не могу разобраться с "Установкой по ключу в реестре"! Как не парился, не выходит! :(

Смотрел файл проекта, там прописано:

[instdirregkey]
Enable=1
_root=HKLM
_key=SOFTWARE\RapidSolution\Scramby
_value=InstallPath
action=continue

value - это ж вроде как "значение"! Зачем мне значение прописывать, если мне как раз надо узнать это значение!
Короче, не могу разобраться, в NSIS я не шарю! Помогите, кто чем может!...))

З.Ы.: Пробовал защитить архив от распаковки, не работает, 7-Zip спокойно распаковывает! :(

K.A.V. 04-07-2012 15:14 1945716

Цитата:

Цитата Дэмиен
value - это ж вроде как "значение"! »

Это имя параметра в реестре, из которого ваш инсталлятор будет брать путь директории назначения, для распаковки ваших файлов
Назвал потому, что в языке NSIS команда на удаление параметров из реестра имеет вид "DeleteRegValue"
В файл проекта простым пользователям, впринципе, заглядывать не обязательно, для этого есть оболчка программы SFX Creator, в которой и прописываются все поля, а там, мне кажется, всё подробно описано, назначение каждого поля

По вопросу использования данной возможности: обновитесь до актуальной версии программы
По вопросу использования "защиты от распаковки": обновитесь до актуальной версии программы

Актуальная версия - 2.4.0.2 от 4 Июля


---
Благодарим за использование SFX Creator, с Уважением

Дэмиен 04-07-2012 16:23 1945784

K.A.V., Спасибо, всё работает! :) :pray:

В файл проекта лазил чтобы прикрепить к ярлыку иконку! :)

Программка отличная, особенно для таких как я, которые не разбираются в скриптах NSIS, а зубрить лень!...)))))
Желаю процветания и успехов! :clapping:

Дэмиен 05-07-2012 07:58 1946169

Еще заметил проблемку, ярлык на Рабочий стол создается нормально, но если его добавить в компоненты, например "Создать ярлык на Рабочем столе", и поставить галочку, то при создании ярлыка у него не прописывается путь к Рабочей папке! А если в комнонентах есть еще что-то, к примеру "Установить дополнительные языки" (В которых путь прописан не $INSTDIR, а $INSTDIR\Lang), то путь к Рабочей папке в ярлыке прописывается как $INSTDIR\Lang, а не $INSTDIR!!! Проблема не серьезная, но все-таки! :) Больше проблем не заметил, всё робит как по маслу! :clapping:

Nun-Nun 12-07-2012 15:37 1950657

K.A.V.,

При запуске версии 2.4.0.2 окно инсталлятора уходит на задний план. Если не сложно, сделайте, чтобы было поверх всех окон, а то после запуска не сразу заметишь, что окно открылось на заднем плане!

K.A.V. 12-07-2012 21:37 1950908

Цитата:

Цитата Дэмиен
Еще заметил проблемку, ярлык на Рабочий стол создается нормально, но если его добавить в компоненты, например "Создать ярлык на Рабочем столе", и поставить галочку, то при создании ярлыка у него не прописывается путь к Рабочей папке! А если в комнонентах есть еще что-то, к примеру "Установить дополнительные языки" (В которых путь прописан не $INSTDIR, а $INSTDIR\Lang), то путь к Рабочей папке в ярлыке прописывается как $INSTDIR\Lang, а не $INSTDIR!!! Проблема не серьезная, но все-таки! Больше проблем не заметил, всё робит как по маслу! »

Обязательно посмотрю

Цитата:

Цитата Nun-Nun
При запуске версии 2.4.0.2 окно инсталлятора уходит на задний план »

Данное поведение инсталлятора уже было исправлено при выходе версии 2.4, сейчас такой проблемы нет, возможно это частный случай, у меня окно инсталлера выскакивает на самый передний план, т.к. при запуске идёт присвоение окну флага "Поверх всех окон"

Nun-Nun 13-07-2012 11:13 1951101

Цитата:

Цитата K.A.V.
Данное поведение инсталлятора уже было исправлено при выходе версии 2.4, сейчас такой проблемы нет, возможно это частный случай, у меня окно инсталлера выскакивает на самый передний план, т.к. при запуске идёт присвоение окну флага "Поверх всех окон" »

Проверил несколько раз: как ни странно, но окно инсталлятора программы постоянно открывается на заднем плане, с инсталляторами других программ у меня такого не наблюдается. :(

K.A.V. 14-07-2012 10:24 1951605

Nun-Nun, я не знаю, в чем у вас проблема, у меня её нет...
Частный случай, так же как и с непонятной "проблемой" из поста #273
Причина такого поведения программы мне неизвестна, т.к. у меня такого не было, проблема была в ОС пользователя

В планах стоят более важные задумки, к примеру, обход ограничения NSIS на архивы размером свыше 2 Гб, но это можно будет достичь только созданием отдельного архива файлов с помощью 7-ZIP, даже и не знаю, будет ли данная возможность пользоваться спросом....но это только всё в планах и в теории

popt2t 18-07-2012 12:53 1954162

Поделитесь пожалуйста примером проекта с программой удаления и ярлыками на рабочем столе и в меню "пуск". А то что-то я не могу полностью разобраться сам.

K.A.V. 18-07-2012 15:41 1954262

Цитата:

Цитата popt2t
Поделитесь пожалуйста примером проекта »

Я писал программу для обычных пользователей, неужели там всё настолько сложно??

Прочитайте справку программы, начните со странички "Переменные", тогда и поймёте, как создавать ярлыки


Сначала выбираете место создания ярылка с указанием переменной, а затем файл, к которому создаёте ярлык

popt2t 18-07-2012 15:43 1954265

Цитата:

Цитата K.A.V.
Я писал программу для обычных пользователей, неужели там всё настолько сложно?? »

Да вроде уже во всем разобрался. Но остался один вопрос. Как в свойства ярлыка добавить "рабочую папку"?

K.A.V. 18-07-2012 15:52 1954277

Цитата:

Цитата popt2t
Как в свойства ярлыка добавить "рабочую папку"? »

Никак, и данной возможности не будет для пользователя (рабочая папка прописывается автоматически), а пока что она указывается не правильно в текущей версии, но вроде бы серьёзных проблем не возникает

В следующей версии исправим (выше пользователь писал о проблеме с полем "рабочая папка")

popt2t 18-07-2012 17:12 1954323

Цитата:

Цитата K.A.V.
а пока что она указывается не правильно »

Или не прописывается вовсе. Или это только у меня?

Цитата:

Цитата K.A.V.
В следующей версии исправим »

Тогда остается только ждать.

З.Ы.
Спасибо за ответ!

K.A.V. 18-07-2012 17:48 1954339

Цитата:

Цитата popt2t
Или не прописывается вовсе. Или это только у меня? »

Прописывается, но не правильно...
Так у всех, версия то SFX Creator у всех одна и та же ;)

Цитата:

Цитата popt2t
Тогда остается только ждать. »

До новой версии ждать не знаю сколько, поэтому на днях выпущу ещё обновление, которое устранит именно данную ошибку в SFX Creator

popt2t 18-07-2012 20:50 1954455

Цитата:

Цитата K.A.V.
До новой версии ждать не знаю сколько »

Очень жаль. Но я все понимаю.

Цитата:

Цитата K.A.V.
поэтому на днях выпущу ещё обновление »

Ну хоть что-то. Спасибо!

K.A.V. 18-07-2012 21:35 1954477

Цитата:

Цитата popt2t
Очень жаль. Но я все понимаю. »

Ну а что...все мы люди и у нас есть и другие дела, кроме как писать бесплатный софт ;)

Да и впринципе, идей как таковых на новую версию нет...Все задумки на версию 2.5 описаны на моей домашней страничке, их мало, поэтому "новая" версия не торопится к выходу

Пока что в обновлениях я только устраняю ошибки...

P.S.
Я даже одно время думал создать отдельную домашнюю страничку для SFX Creator с форумом, но т.к. популярность сего проекта совсем мала, пока что не берусь за это дело...Данной темы, вроде бы, достаточно

popt2t 18-07-2012 21:46 1954487

Цитата:

Цитата K.A.V.
все мы люди и у нас есть и другие дела »

Согласен. Потому и говорю что все понимаю.

Цитата:

Цитата K.A.V.
кроме как писать бесплатный софт »

За что тебе БОЛЬШОЕ спасибо!

Цитата:

Цитата K.A.V.
популярность сего проекта совсем мала, пока что не берусь за это дело...Данной темы, вроде бы, достаточно »

С этим тоже согласен.

K.A.V. 21-07-2012 10:36 1955978

Обновление ccode.exe, информация в шапке

K.A.V. 21-07-2012 16:46 1956132





Данная возможность появится в версии 2.5 и она будет называться "Кеширование файлов проекта"
Суть заключается в том, чтобы пользователю было намного проще вставлять имена файлов в различные поля в программе, где предусмотрена вставка "Переменной"

Все файлы проекта будут автоматические приведены к виду с путём для распаковки

Впринципе, возможность уже работает

Как думаете, окно списка файлов не большое? Или может уменьшить чуток шрифт?
А так, мне кажется, возможность чуть облегчит пользователям работу с программой, надеюсь возможность будет востребована :)

Да забыл сказать, пользователь также сможет настроить, какие типы файлов SFX Creator будет кешировать, например, чтобы не было лишнего в этом списке, можно настроить, чтобы SFX Creator отображал только EXE файлы проекта

alert30 21-07-2012 19:44 1956209

K.A.V., отличная идея для копипаста, надоел одно и то же писать пути.

ashgwy 23-07-2012 19:58 1957366

Здравствуйте. Не могли бы прояснить вопрос по вашей программе SFX?
Здесь есть видео http://www.2shared.com/video/EisuluLc/1_online.html как можно в два щелчка обойти пароль на архив, но с вашей программой так не получается. Программу которая используется на видео, я не знаю где взять. Может что нибудь подскажете?

alert30 23-07-2012 20:10 1957375

ashgwy, какое отношение имеет к SFX Creator?

ashgwy 23-07-2012 20:32 1957386

Вы видео смотрели? Тогда самое прямое, та программа тож называется SFX

K.A.V. 23-07-2012 21:14 1957426

Цитата:

Цитата ashgwy
Не могли бы прояснить вопрос по вашей программе SFX? »

На видео не моя программа

Цитата:

Цитата ashgwy
но с вашей программой так не получается »

Что не получается то, убрать пароль с RAR архива?

Цитата:

Цитата ashgwy
Тогда самое прямое, та программа тож называется SFX »

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


Цитата:

Цитата alert30
ashgwy, какое отношение имеет к SFX Creator? »

А может, человек ходит по форумам и впаривает эту "чудо программу", которая якобы может удалить пароль с RAR архива?
Я бы посоветовал модератором обратить на это внимание

Видео и такую "чудо программу" сделать не сложно, которая показывает 1 единственный функционал - показать диалог сохранения файла и потом скопировать заведомо готовый архив, но уже без пароля - больше похоже на развод для лохов, имхо

K.A.V. 27-07-2012 22:01 1960313

Вообщем так...

Написал поддержку создания архивов размером свыше 2 гб + поддержку многотомных архивов, всё это дело делает внешний 7-Zip
Как это будет работать, в плане того что размещать большие архивы на разные носители - проблема
Сейчас создал многотомный архив, переименовал 1 файл архива, сделав вид, что его не существует, при распаковке 7-Zip может только сообщить код возврата, что распаковка не удалась...

Что можно предпринять в данном случае? Проверку контрольной суммы архивов и просить пользователя "Вставить нужный том" (опять же, неизвестно, какой именно, т.к. определить в какой из частей находится необходимый файл, лично я не знаю), если 7-Zip будет постоянно отвечать "Fatal error" при ошибке распаковки файлов из архива, даже не знаю

Ещё есть 1 проблема при создании архива с помощью 7-Zip - пути распаковки

Сделать так же, как делает SFX Creator не получилось...
Смысл вот в чем: например, вы в проекте указываете упаковать папку "C:\TEST\2"
7-ZIP не может распаковать файлы из директории "2" сохранив структуру каталога именно не распаковывая саму папку, т.е. получается так, что будет распаковываться сама папка "2", а не её содержимое
Вообщем если указать директорию назначения $INSTDIR, то в данной директории будет папка 2 со всеми файлами, а так, чтобы распаковать именно содержимое папки 2 (не создавая её саму) не получается(

Отсюда небольшое неудобство в плане гибкости при использовании 7-Zip

Вообще, наверное, не нужно было за это браться :dont-know

onis 28-07-2012 01:48 1960385

Вложений: 1
Добрый вечер хочу сделать инсталсвоего пакета но ничего не выходит появляется окно з ошибкой. Вся информация в архиве
помогите плиз

alert30 28-07-2012 06:53 1960404

onis, вот исправил проект, скачайте, распакуйте архив и перетащите в Program Files\SFXCreator\projects.

onis 28-07-2012 12:30 1960485

Цитата:

Цитата alert30
onis, вот исправил проект, скачайте, распакуйте архив и перетащите в Program Files\SFXCreator\projects.
Вложения
tradekovbasa.7z
(681 байт, 0 просмотров) »

исправление скачал перезаписал в но ошибка не прошла, даже снял галочку "Прогресс распаковки" вот это не нашел "Выбор каталога установки пользователем" если в этом причина то подскажите где искать

alert30 28-07-2012 13:49 1960520

onis, идем по "лестницам" (по порядку):
1. Если ставить галочку "Процесс распаковки" в компиляторе, то в инсталлятре (скажем setup.exe запустится вручнуой NSIS инсталлятор, там где устанвить, где создать программу для ярлыка и пр.) будет еще одно с огромным прогресс-баром. Для меня это лишнее, а для "тихой" установки обязательным.
2. Если ставить галочку "Выбор каталога установки пользователем", то в инсталляторе перед запуском вручной NSIS инсталяции появится окно о выборе установки через каталог, не набирая слово, где создается папка.

По путям который, Вы назначили иконку установки, где будет компилируется инсталлятор проверили?

Добавляю: Вы видимо переключили скин инсталлятора на вручной ("MUI: Modern"), где будет распаковать, создать ярлык и пр. Возможно этой ошибки:
Код:

PAGE_WELCOME=0
PAGE_LICENSE=0
PAGE_DIRECTORY=0
PAGE_COMPONENTS=0
PAGE_STARTMENU=0
PAGE_FINISH=0

Вместо нулей, ставьте единичку, хотя-бы один из страниц инсталлятора.

K.A.V. 28-07-2012 14:31 1960540

onis, уберите кавычки из названия программы
Если не поможет, запустите "SFX Creator\NSIS\compile.bat" и сделайте скриншот окна

onis 28-07-2012 15:13 1960562

Цитата:

Цитата K.A.V.
onis, уберите кавычки из названия программы
Если не поможет, запустите "SFX Creator\NSIS\compile.bat" и сделайте скриншот окна »

Спасибо вот это помогло.
Хотел задать вопрос
как сделать чтоб программа проверяла наличие файла и если он есть чтоб было обновление
я уже 2 часа играюсь никак не выходит
я поставил галочку в окне "Выбор каталога" "разрешить установку только при наличие файла...", установка приходит даже если файла нету
вот параметр в рядке
Код:

$INSTDIR\tradekovbasa
может дальше поставить название файла. или как ???

alert30 28-07-2012 16:05 1960581

Цитата:

Цитата onis
я поставил галочку в окне "Выбор каталога" »

А это зачем? Вроде лишнее. Вы собиретесь делать "тихую" установку или RePack?

K.A.V. 28-07-2012 16:25 1960590

Цитата:

Цитата onis
установка приходит даже если файла нету »

Значит вы не правильно указываете путь к файлу

В вашем примере $INSTDIR\tradekovbasa вообще не существует, т.к. переменная $INSTDIR примет путь $ProgramFiles\1С\tradekovbasa судя по вашему файлу проекта, читайте справку программы страничку "Переменные"

По вашему вопросу:
Вам нужно указать файл, который существует в директории tradekovbasa, и указать в проекте вот так:

$INSTDIR\MyFile.txt

Т.е. я предполагаю, что файл MyFile.txt находится в папке tradekovbasa

K.A.V. 30-07-2012 08:32 1961342

Если у кого-то есть пожелания относительно новой версии - говорите сейчас...Скоро версия 2.5
На домашней страничке обновил информацию по поводу новой версии, нововведений не много, впринципе, всё не значительное :)

alert30 30-07-2012 18:52 1961671

K.A.V., как получилось на посте 322? Решили встроить или нет?

K.A.V. 30-07-2012 19:19 1961696

Цитата:

Цитата alert30
K.A.V., как получилось на посте 322? Решили встроить или нет? »

Да, решил оставить...

Насчет распаковки ничего не решилось, 7-Zip может распаковать только папку целиком
Если, допустим, в проекте несколько файлов, то они все упаковываются в 1 архив, например в проекте 3 записи с файлами, 1 директория и 2 файла:

Код:

C:\TEST\1
C:\Windows\regedit.exe
C:\Windows\System32\calc.exe

В архиве они будут иметь такой вид:

Код:

1
regedit.exe
calc.exe

И, получается так, что 7-zip может распаковать только папку целиком, а не её содержимое
SFX Creator же распаковывает именно содержимое папки, указанной в проекте
Отсюда и сложность...Мне это не нравится

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

Т.е. если на момент запуска 1 из томов будет отсутствовать, то инсталлятор не продолжит запуск
Здесь тоже сложность...Например, если у пользователя будет 3 диска по 700 Мб с данными, то ему придётся сначала собрать все файлы в 1 каталог, т.к. если при распаковке возникнет ошибка, то определить, в каком из томов находится "потерянный" файл я не в курсе...
Возможно, у 7-Zip есть какие-то команды или ключи, в которые я не вникал, которые могли бы дать данную информацию


Посмотрим, если данная возможность будет пользоваться спросом, то попробуем что-то предпринять, если конечно это возможно

K.A.V. 01-08-2012 17:02 1962881

SFX Creator. Версия 2.5



Размер обновлений - 1,77 МБ (при обновлении до версии 2.5 через программу обновления)
Размер пакета установки версии 2.5 - 4,20 Мб

---
Что нового:
[+] Многоязыковая поддержка интерфейса при подключении "Графического интерфейса"
[+] Кеширование файлов проекта: возможность вставлять пути файлов проекта в поля, где предусмотрена возможность вставки переменной
[+] Поддержка создания архивов размером свыше 2 Гб (создавая отдельный файл архива)
[+] Поддержка создания многотомных архивов с использованием архиватора 7-Zip
[+] В главное окно программы добавлен переключатель "Режим отладки"


Исправлена ошибка в главном диалоге настройки "Графического интерфейса": не работал фильтр изображений (при просмотре файлов из проводника)

Исправлена ошибка в главном диалоге настройки "Графического интерфейса": не работал показ изображения перед запуском инсталлятора

Из пакета инсталлятора вырезана внутренняя функция загрузки последней версии программы по причине ложного детектирования вируса некоторыми антивирусами

Улучшена функция проверки обновлений программы: теперь SFX Creator запускает отдельный процесс для проверки статуса программы, что позволяет не замедлять запуск программы при проблемах с интернет соединением, а также теперь SFX Creator сможет загружать любые изменённые файлы программы

Исправлена ошибка, при которой появлялась "Ошибка компиляции", если в графическом интерфейсе ранее была включена "Страница старт меню" и были прописаны ярлыки, то вне зависимости от того, включен ли был показ данной странички, SFX Creator добавлял данные в скрипт

Исправлены другие ошибки

-----
Обновляемся через встроенную программу обновления, либо загружаем вложение из шапки темы

Limonica 12-08-2012 16:41 1968970

Неработает функция защиты архива при включённой функции самоудаления

K.A.V. 12-08-2012 17:25 1968985

Цитата:

Цитата Limonica
Неработает функция защиты архива при включённой функции самоудаления »

Выпустил обновление, запустите встроенную программу обновления
Благодарим за баг-репорт

С Уважением

Limonica 13-08-2012 19:50 1969658

Есть проблема, при установке в автоматическом (скрытом) режиме, если уже есть такой файл в папке назначения и занят другим процессом, то выскакивает ошибка:

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

K.A.V. 13-08-2012 20:44 1969681

Цитата:

Цитата Limonica
Можете сделать, что бы при невозможности скопирования файл пропускался автоматически? »

Всё, что я могу вам посоветовать в версии 2.5 - это проверять наличие процесса запущенной программы, которая блокирует данный файл

Это можно сделать через "Дополнительные возможности => Проверить/закрыть запущенные приложения"
В данном диалоге вы можете указать определение по имени процесса/окна/части имени окна/классу окна

При запуске инсталлятор уведомит пользователя, что необходимо закрыть указанное приложение , либо инсталлятор сам "убьёт" мешающий установке процесс

---
Что касается будущей версии SFX Creator, такого нет в планах на реализацию, проверять заблокирован ли файл
Могу сделать лишь переключатель перезаписи файлов проекта при распаковке, т.е. если файл уже существует, то не перезаписывать

Limonica 13-08-2012 21:04 1969691

Цитата:

Цитата K.A.V.
Могу сделать лишь переключатель перезаписи файлов проекта при распаковке, т.е. если файл уже существует, то не перезаписывать »

Именно это и нужно, спасибо.

K.A.V. 13-08-2012 21:24 1969712

Limonica, значит на днях выпущу ещё одно обновление, с добавлением данного переключателя, так сказать, чтобы было всё официально ;)

А пока, могу вам посоветовать вот что:
1. После компиляции проекта, откройте файл NSIS\Source.nsi (если вы другие проекты не компилировали после вашего, можете сразу открывать данный файл) любым текстовым редактором

2. Вставьте после строки
Код:

OutFile "......"
Вот эту строку:
Код:

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

Если не сработает, то ставьте вот так:
Код:

SetOverwrite off
При данной команде инсталлятор не будет перезаписывать никакие файлы, если они уже существуют на диске

3. Сохраните изменённый файл

4. Запустите NSIS\compile.bat для повторной компиляции проекта

Limonica 13-08-2012 22:42 1969764

Добавляя:
Код:

SetOverwrite try
Функция защиты неработает.

Плюс пожелание, чтобы файл SelfDel.exe из папки Temp так же самоудалялся.

Limonica 15-08-2012 12:11 1970594

В справке не описана функция "Добавить операцию в реестре", несовсем понятно нужно прописывать полный путь или же путь после корневого раздела, как ни пробЫвал жобавить неполучилось и если можете добавте туда запись типа REG_BINARY, очень нужно.

K.A.V. 15-08-2012 12:24 1970601

Цитата:

Цитата Limonica
В справке не описана функция "Добавить операцию в реестре" »

Я не стал описывать, т.к. там в диалоге всё очень даже понятно, выбираете раздел (сделал так специально, чтобы пользователь не ошибился при вводе корневого раздела) и далее вводите в поле "Ветка" то, что идёт после корневого раздела, например Software\Microsoft\TEST

Цитата:

Цитата Limonica
если можете добавте туда запись типа REG_BINARY, очень нужно »

Сделаем

Limonica 15-08-2012 12:58 1970629

Приятно, что у программы, такая сильная поддержка. При одновременно включеных функциях "Выполнить приложение" и "Операция в реестре" сначало выполняется приложение и лишь после его закрытия добавляется запись в реестр, при этом необходимо сохранить включённой функцию "Ждать до конца выполнения", можно добавить например, опциональный параметр что бы операция в реестре выполнялась раньше запуска приложения? И можете ли реализовать в фукции "Выполнить приложение", выполнение приложения с параметром, очень нужная функция.

K.A.V. 15-08-2012 13:44 1970650

Цитата:

Цитата Limonica
Приятно, что у программы, такая сильная поддержка. »

Приятно, что мой труд пользуется спросом ;)

Цитата:

Цитата Limonica
можно добавить например, опциональный параметр что бы операция в реестре выполнялась раньше запуска приложения? »

На данном этапе программы этого сделать не могу, т.к. в программе, которая создаёт исходный код (где прописаны все ваши команды в виде языка программирования), идёт жесткая привязка к обработке секций, т.е. SFX Creator обрабатывает секции "возможностей" в таком порядке:

Код:

Файлы для упаковки
Создание ярлыков
Импорт REG-файлов
Выполнение приложений
Действия в реестре
Файловые операции
Регистрация DLL
Выполнение собственных NSIS функций

Да, честно сказать я об этом много раз думал, чтобы дать возможность пользователю "раскидать" приоритеты в выполнении функций, но пока что, это не первоочерёдная задача, нужно переписывать ccode.exe, чего делать, честно сказать, не охото, но, с другой стороны, эта фишка была бы полезной для SFX Creator в плане гибкости программы

---
Цитата:

Цитата Limonica
И можете ли реализовать в фукции "Выполнить приложение", выполнение приложения с параметром, очень нужная функция. »

А вы не пробовали прям в том же поле, после расширения файла прописать параметры?

Limonica 15-08-2012 14:01 1970656

Цитата:

Цитата K.A.V.
А вы не пробовали прям в том же поле, после расширения файла прописать параметры? »

Пробывал, не выходит.

K.A.V. 15-08-2012 14:12 1970663

Цитата:

Цитата Limonica
Пробывал, не выходит. »

А что за приложение? MSI пакет?
Просто синтаксис впринципе будет одинаковый, что я добвлю отдельное поле, или если останется так, как сейчас, в поле "Выполнить" вводите примерно так?
Код:

$TEMP\TEST.exe /test

Limonica 15-08-2012 14:48 1970692

Нет это не MSI, обычный EXE исполняемый файл программы, по идее должен сначала установится в качестве службы, затем запустится в фоновом режиме, в итоге ни реагирует ни на первый ни на второй параметр, просто запускается как test.exe.

Код:

$ProgramFiles\test\test.exe /install
$ProgramFiles\test\test.exe /start

Можно ли добавить функцию, присвоения атрибутов файлам, по типу "Добавить файловую операцию"?

K.A.V. 15-08-2012 15:07 1970703

Limonica, попробуйте открыть тот же файл NSIS\Source.nsi (или в файлах NSIS\Include\K.A.V._PRE_Function.nsh и K.A.V._POST_Function.nsh), найдите строки с исполнением данного приложения, и поместите параметр за кавычку, заменя строки, примерно так:

Код:

ExecWait '"$ProgramFiles\test\test.exe" /silentinstall'
ExecWait '"$ProgramFiles\test\test.exe" /start'

После редактирования, для компиляции запустите NSIS\compile.bat

О результате отпишитесь


---
Цитата:

Цитата Limonica
Можно ли добавить функцию, присвоения атрибутов файлам, по типу "Добавить файловую операцию"? »

Можно

Limonica 15-08-2012 15:38 1970728

Цитата:

Цитата K.A.V.
О результате отпишитесь »

Вот так всё работает, спасибо.

K.A.V. 15-08-2012 16:15 1970749

Цитата:

Цитата Limonica
Вот так всё работает, спасибо. »

Значит в следующей версии будет добавлено поле специально для командной строки исполняемого файла

Limonica 15-08-2012 19:14 1970852

А скоро будет обновление?

K.A.V. 15-08-2012 21:59 1970929

Цитата:

Цитата Limonica
А скоро будет обновление? »

Выпускать обновления я буду лишь для устранения ошибок в программе

Насчет выхода новой версии ничего не могу сказать
О выходе новой версии и что стоит в планах на реализацию, я информирую только через свою домашнюю страничку, кому интересно, заходите смотрите...Как только будут собраны идеи на новую версию, я сразу же обновляю информацию на своём сайте

Limonica 15-08-2012 23:06 1970966

Зарегистрироваться на Вашем форуме не вышло и пишу здесь, хотелось выполнить собственную функцию NSIS
1. Выполнить после распаковки файлов.
2. Всё довольно просто. Добавить в реестр четыре значения и запустить исполняемый файл последовательно с тремя разными параметрами.
Нужно ли приводить ключи реестра или же будет возможность их вписать самостоятельно?

P.S. На форуме ругается на email
Цитата:

Введённый домен email не имеет корректной почтовой записи в DNS (MX record).

K.A.V. 15-08-2012 23:50 1970986

Вложений: 1
Цитата:

Цитата Limonica
P.S. На форуме ругается на email »

Спасибо, исправил

Цитата:

Цитата Limonica
Нужно ли приводить ключи реестра или же будет возможность их вписать самостоятельно? »

Смотря какие вам типы параметров нужно прописать, во вложении пример функции с записью в реестр и выполнением приложений (там комментарии читайте)

Разделы реестра указывайте такие:
Код:

HKCR или HKEY_CLASSES_ROOT
HKLM или HKEY_LOCAL_MACHINE
HKCU или HKEY_CURRENT_USER
HKU или HKEY_USERS
HKCC или HKEY_CURRENT_CONFIG


Инструкция по подключению выполнения своей функции
1. Распакуйте из архива файл MyFunc.nsh в папку \NSIS\Include\custom
2. Редактируете файл и сохраняете
3. Дополнительные возможности => Выполнить собственные функции
4. В поле Include файл вводите MyFunc.nsh
5. В поле Функция вводите MyFuncEx
6. Выбираете Выполнить после распаковки файлов
7. Добавить

Limonica 16-08-2012 00:48 1971014

Информацию в реестр добавляет вопросов нет, но выполнение приложений, снова, происходит без учёта параметров, как есть. Пробывала и такой, и такой вариант:
Цитата:

ExecWait '"$ProgramFiles\test\test.exe" /test'
ExecWait "$ProgramFiles\test\test.exe /test"
Результат тот же. Что делать?

P.S. Совсем забыла, подскажите как будет выглядеть строчка добавления атрибута файлу?

K.A.V. 16-08-2012 00:57 1971017

Цитата:

Цитата Limonica
выполнение приложений, снова, происходит без учёта параметров »

Возможно проблема именно в приложении...

Потому как:
Код:

ExecWait '"$ProgramFiles\test\test.exe" /test'
Должно срабатывать

Цитата:

Цитата Limonica
как будет выглядеть строчка добавления атрибута файлу? »

Код:

SetFileAttributes "$WINDIR\Explorer.exe" READONLY|HIDDEN|SYSTEM
Значения аттрибутов указывайте такие:
Код:

NORMAL
ARCHIVE
HIDDEN
READONLY
SYSTEM


Limonica 16-08-2012 10:49 1971127

Доброе утро, хочу выполнить собственную функцию NSIS, по типу (проверяет есть ли файл в заданной директории и в зависимости от результата делает переход на обозначенную константу). Неоходимо выполнить до распаковки файлов. Пример на BAT:
Код:

if exist "%ProgramFiles%\test\test.exe" (goto ex) else (goto in) 
 :in
install

 :ex
exit


K.A.V. 16-08-2012 11:13 1971139

Код:

IfFileExists "$exedir\Отчёт.log" 0 NoFile
; Файл есть, выполняем код


NoFile:
; Файла НЕТ


Limonica 16-08-2012 12:02 1971165

Спасибо, это работает, но только после распаковки файлов. Поскольку секции чётко зафиксированы, придумалось решение, дописать скрипт, поэтому снова нужна Ваша помощь, а именно:

Код:

Скрипт распаковки файлов в определённую директорию

K.A.V. 16-08-2012 12:31 1971182

Цитата:

Цитата Limonica
Скрипт распаковки файлов в определённую директорию »

Код:

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

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

Limonica 16-08-2012 13:18 1971215

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

Код:

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

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

K.A.V. 16-08-2012 13:33 1971226

Цитата:

Цитата Limonica
если на месте то идёт установка, если нет заканчивает свою работу »

Цитата:

Цитата Limonica
На случай если файл отсутствует, только после этого файлы распаковываются »

Вы определитесь, что делать при отсутствии файла...

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

Limonica 16-08-2012 13:51 1971239

Ой небольшая ошибка, правельный второй вариант =) , вот таким способом:

Код:

IfFileExists "$INSTDIR\test.exe" 0 NoFile 

Quit 

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


Limonica 16-08-2012 14:17 1971252

Цитата:

Цитата K.A.V.
Limonica, значит на днях выпущу ещё одно обновление, с добавлением данного переключателя, так сказать, чтобы было всё официально »

Ждёмс =)

Limonica 16-08-2012 14:34 1971267

Будьте добры, покажите как должна выглядеть команда переименования файла?

K.A.V. 16-08-2012 14:41 1971271

Цитата:

Цитата Limonica
Будьте добры, покажите как должна выглядеть команда переименования файла? »

Код:

Rename "$INSTDIR\Старое имя.exe" "$INSTDIR\Новое имя.exe"
Если конечная директория будет отличаться от начальной, то файл будет перемещен

Limonica 16-08-2012 16:06 1971322

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

K.A.V. 16-08-2012 16:34 1971335

Цитата:

Цитата Limonica
а при ручной замене этого параметра или использовании скрипта WriteRegStr, только после перезагрузки »

Возможно, система обновляет информацию о службах после перезагрузки, если изменения были сделанны именно данным способом, честно говоря, не задавался данным вопросом и ответа не знаю

Цитата:

Цитата Limonica
есть ли в NSIS что то подобное? »

Попробуйте NSIS Simple Service Plugin

Limonica 16-08-2012 16:54 1971350

При использовании этого плагина, происходит ошибка при запуске уже собранного распаковщика, на моменте выполнения команды:
Код:

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

K.A.V. 16-08-2012 17:09 1971359

Цитата:

Цитата Limonica
происходит ошибка при запуске уже собранного распаковщика »

Там же ниже написаны примеры...Вы мало параметров передаёте плагину...

Код:

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

Limonica 16-08-2012 17:35 1971374

Хмм, в таком формате, даже не создаёт службу:
Код:

SimpleSC::InstallService "service" "TEST" "110" "2" "%ProgramFiles\test\test.exe" "" "" ""

K.A.V. 16-08-2012 17:53 1971380

Откуда вы взяли цифру 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 1971432

Все получилось, большое спасибо.

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

GLUM890 21-08-2012 00:13 1973718

Правильно ли я понял, чтобы сделать возможность выбора компонентов перед распаковкой, нужно добавить свой NSIS скрипт? Большое спасибо за ответ.

K.A.V. 21-08-2012 00:46 1973738

GLUM890, нет...
Вам необходимо:

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

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

alert30 22-08-2012 10:53 1974515

K.A.V., в этой версии, есть функция, что-то типа вот такое? Не обращаю внимание к красно-прямоугольным обозначением.

K.A.V. 22-08-2012 11:16 1974535

Цитата:

Цитата alert30
K.A.V., в этой версии, есть функция, что-то типа вот такое? »

Не понял, что вы имеете ввиду...
Изменить текст или вам нужно отобразить диалог выбора каталога??
Или вам нужно картинку слева отобразить?

alert30 22-08-2012 11:19 1974539

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

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

K.A.V. 22-08-2012 11:26 1974543

Цитата:

Цитата alert30
K.A.V., чтобы пользователи смогли ставить галочку, какой ярлык создаем »

SFX Creator не поддерживает отображение "собственных страничек"

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

Дэмиен 22-08-2012 11:33 1974550

alert30, Можно создать пункт в разделе компоненты на создание ярлыков!

alert30 22-08-2012 18:39 1974858

Дэмиен, по-позже попробую.

K.A.V., может в следующей версии сделаете такую функцию?

K.A.V. 22-08-2012 19:49 1974898

Цитата:

Цитата alert30
K.A.V., может в следующей версии сделаете такую функцию? »

Не поверите, но именно для сообщения данной новости зашел сейчас на форум :biggrin:

Вообщем, не мог реализовать пару дней одну небольшую фишку, сейчас получилось..

1. Данный диалог будет добавлен в функцию "Графического интерфейса"
2. Главный диалог SFX Creator будет немножко видоизменён, не буду говорить об изменениях, но сначала может показаться не привычно и не удобно, но на самом же деле, будет просто напросто более быстрый доступ к функциям SFX Creator засчет добавления менюшки в главный диалог программы

Насчет выхода новой версии говорить ничего не буду, вся инфа будет доступна на моём сайте, +перед выходом версии скорее всего будет бета-сборка, уведомление о выходе беты сможете увидеть из встроенной функции проверки обновлений (только при запуске SFX Creator)
Скачать можно будет только с форума SFX Creator для тестирования

K.A.V. 27-08-2012 18:08 1977938

Цитата:

Цитата alert30
K.A.V., может в следующей версии сделаете такую функцию? »

Вот так реализовал :)

Modern UI



Ultra Modern UI

K.A.V. 01-09-2012 09:31 1980994

SFX Creator. Версия 2.6

[+] В главный диалог добавлено меню SFX Creator, его можно вызвать нажав кнопку с иконкой зелёного плюса в верхнем левом углу окна SFX Creator
[+] Настраиваемый "баннер прогресса распаковки": теперь вы сами сможете указать текст, который будет отображаться пользователю на прогрессе при распаковке файлов, +добавлен второй прогресс-бар
[+] Добавлена возможность показа дополнительного диалога "Ярлыки программы" при подключении графического интерфейса
[+] Улучшена возможность "Режим отладки": теперь вы можете отредактировать исходники проекта перед началом процесса компиляции
[+] Теперь при "Ошибке компиляции" пользователю показывается диалог с полным логом процесса компиляции (удобно +без сообщений-вопросов)
[+] Логирование процесса компиляции: теперь можно сразу же выявить причину ошибки компиляции по анализу лога
[+] При включении "Самоудаления" теперь не остаётся временный файл SelfDel.exe во временной директории
[+] В главном диалоге появился переключатель перезаписи файлов при распаковке (можно установить настройку для каждой отдельной записи файлов)
[+] Диалог "Добавить выполнение приложения": добавлена возможность запуска приложений с командной строкой
[+] Теперь вы можете управлять последовательностью выполнения команд в вашем SFX пакете. Вы сможете сами определить, какие команды выполнятся быстрее: запись данных в реестр, выполнение приложений, создание ярлыков и т.д..
[+] В главный диалог добавлена кнопочка для загрузки последнего активного проекта
[+] В меню переменных добавлены иконки

Диалог "Операции в реестре"
[+] Добавлена возможность записи параметра типа REG_BINARY
[+] Исправлена неработоспособность диалога

[+] Добавлен диалог "Установка аттрибутов файлам"
---

Качаем вложение из шапки темы или запускаем встроенную программу обновления в SFX Creator

Limonica 02-09-2012 00:01 1981352

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

alert30 02-09-2012 00:13 1981356

Limonica, если я не ошибаюсь, вроде это есть?!

Limonica 02-09-2012 00:15 1981357

Скорее всего вы ошибаетесь...

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

Код:

Строку:

StrCpy $TMPDIR "$TEMP\sfxcreator_$Minute$Hour$Seconds"

Заменить на:

StrCpy $TMPDIR "$TEMP\"


K.A.V. 02-09-2012 01:52 1981381

Цитата:

Цитата Limonica
Добавьте пожалуйста в разделе файловые операции, возможность переименования файлов. »

Добавим

Цитата:

Цитата Limonica
Ещё одно пожелание, относительно директории $TEMPDIR, добавить возможность чистой временной распаковки без создания папки »

Вы не правильно поняли предназначение переменной $TEMPDIR, разъясняю

Переменная $TEMPDIR была добавленна именно потому, что этой переменной назначается директория, которую создаёт ваш SFX-архив, и содержимое которой ваш же архив автоматически удаляет после обтработки всех команд в скрипте

А переменная $TEMP - это каталог для временного хранения файлов в системе, не путайте эти 2 переменные

truvo 02-09-2012 02:32 1981389

Цитата:

Цитата K.A.V.
или загружайте вложение из шапки темы »

не вижу его

K.A.V. 02-09-2012 02:37 1981390

Цитата:

Цитата K.A.V.
Скачать с Soft.OSzone.net
или загружайте вложение из шапки темы »

Сложно перейти в софт-каталог? ;)

Добавил вложение

truvo 02-09-2012 22:18 1981852

несложно, но раз написано - должно быть! :)

K.A.V. 02-09-2012 22:33 1981865

Цитата:

Цитата truvo
несложно, но раз написано - должно быть! »

Волшебное слово "или" убирает данную необходимость, т.к. есть другой источник архива ;)

Limonica 06-09-2012 12:07 1984088

KAV как должна выглядеть команда создания ярлыка?

K.A.V. 06-09-2012 12:34 1984101

Limonica, вам пора качать Справочник по NSIS ;)
Справочник по NSIS => Перевод справки NSIS => CreateShortCut

Limonica 06-09-2012 17:59 1984306

Кстатие, функция перезаписи не работает

K.A.V. 06-09-2012 23:17 1984482

Цитата:

Цитата Limonica
функция перезаписи не работает »

Всё прекрасно работает...
Единственное, была проблема при указании "Перезаписывать, если новее" - теперь перезаписывает, если распаковываемый файл был изменён более позднее чем тот, что уже существует на диске

Обновитесь через программу обновления - там буквально 50 Кб для замены ccode.exe

Ka3hak 07-09-2012 05:01 1984535

Вложений: 1
Уважаемый автор, взываю к твоей помощи...
Просто скажи, что не так...?

K.A.V. 07-09-2012 08:32 1984571

Ka3hak, Здравствуйте
В настройках "Графического интерфейса" вы включили отображение "Установить фононове изображение", но не указали BMP файл, который необходимо использовать как фоновое изображение :)

P.S.
1. В настройках деинсталлятора заполните поле "Ветка в Uninstall", прочтите файл справки о создании деинсталлятора
2. В настройках графического интерфейса => Старт меню, заполните текстовое поле "Имя дериктории в меню все программы"
3. Поле "Директория для установки" в главном окне SFX Creator для указания директории для распаковки по умолчанию, а не для выходного файла с расширением как у вас
4. Если вы подключаете графический интерфейс, то зачем включать возможность выбора директории "Предоставить выбор пользователю" посредством галочки в главном окне?? Уберите это надоедливое окошко и включите в графическом интерфейса нормальный диалог "Выбор каталога"

Ka3hak 07-09-2012 13:11 1984710

K.A.V., спасибо большое за ответы, дай бог вам побольше терпения на таких как я :)
Также хочу добавить что я не совсем ламер, как вам наверное показалось...
Дело в том, что я первый день юзал (точнее пытался) ваш SFXCreator и в итоге у меня ничего не вышло. Прочёл файл справки.
Хотелось поскорее создать хоть что-нибудь, что будет работать, от чего я бы в итоге отталкивался и продолжал разбирать остальные функции программы.
В целом интерфейс программы мне показался не удобным (только не обижайтесь). Все опции замурованы под слоем меню и подменю.
В итоге получается не совсем "дружественный" интерфейс и он будет сложен даже для среднего пользователя.
С одной стороны - всё под рукой, а с другой - попробуй это разбери (понимаете о чём я?)
Хорошим примером (в плане удобности интерфейса) может выступить программа типа Smart Install Maker,
в которой процесс создания инсталлятора происходит поэтапно и ничего не пропустить, всё в главном меню программы.
Я не говорю что SFXCreator хуже, наоборот - это более универсальный инструмент обеспечивающий лучшую степень сжатия.
Просто, ну очень хотелось бы ощутить весь функционал по средствам приятного и понятного интерфейса.
Вы создатель Free-софта, вы трудитесь для людей... За что вам конечно, большой РЕСПЕКТ, но только представьте,
на сколько бы выросло число пользователей вашей программы если бы она была несколько "доступнее".

K.A.V. 07-09-2012 21:41 1984957

Цитата:

Цитата Ka3hak
Хотелось поскорее создать хоть что-нибудь, что будет работать »

Указываете в главном диалоге параметры SFX архива, добавляете файлы в проект => Компилировать
Это вам показалось сложными действиями??

Цитата:

Цитата Ka3hak
Все опции замурованы под слоем меню и подменю »

Все возможности программы видно именно при нажатии 1 клика либо в меню SFX Creator, либо в "Дополнительных возможностях", это вы считаете "замурованными возможностями"?

Цитата:

Цитата Ka3hak
В итоге получается не совсем "дружественный" интерфейс и он будет сложен даже для среднего пользователя. »

Все основные настройки для SFX архива находятся в главном диалоге, все остальное - потребности пользователя, всё остальное было сгруппированно в выпадающем списке и в меню SFX Creator

Цитата:

Цитата Ka3hak
Хорошим примером (в плане удобности интерфейса) может выступить программа типа Smart Install Maker, »

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

Цитата:

Цитата Ka3hak
в которой процесс создания инсталлятора »

SFX Creator создан для создания SFX архивов, дополнительная возможность подключения "Графического интерфейса" - это всего-лишь дополнение, для расширения функциональности
Проект изначально не задумывался для создания полноценных пакетов инсталляции, хотя и уже, с помощью SFX Creator можно создать очень гибкий инсталлятор, превосходящий по возможностям другие программы похожего типа

Цитата:

Цитата Ka3hak
Просто, ну очень хотелось бы ощутить весь функционал по средствам приятного и понятного интерфейса. »

Или вы просто привыкли к тому, что все программы похожи друг на друга, а тут вы увидели совершенно другую структуру интерфейса у программы, и из-за этого, программа вам кажется "не дружелюбной"

Цитата:

Цитата Ka3hak
но только представьте,
на сколько бы выросло число пользователей вашей программы если бы она была несколько "доступнее". »

Если вы всё ещё про интерфейс - то я вам выше уже всё объяснил - ограничения языка программирования не дают мне возможности "слизать интерфейс" у уже существующих программ

Ka3hak 08-09-2012 16:36 1985171

Цитата:

Цитата K.A.V.
Или вы просто привыкли к тому, что все программы похожи друг на друга, а тут вы увидели совершенно другую структуру интерфейса у программы, и из-за этого, программа вам кажется "не дружелюбной" »

Может и так...
Цитата:

Цитата K.A.V.
Если вы всё ещё про интерфейс - то я вам выше уже всё объяснил - ограничения языка программирования не дают мне возможности "слизать интерфейс" у уже существующих программ »

Я вас понял.
Цитата:

Цитата Ka3hak
но только представьте,
на сколько бы выросло число пользователей вашей программы если бы она была несколько "доступнее". »

Проще говоря: "Я принципиально забил бы большой и толстый на эту программу, если бы вы не ответили на мой репорт об ошибке."
Вероятно большинство так и делает.


K.A.V.
Моё сообщение - это всего лишь "отзыв" о программе.
Всё же, согласитесь, хорошо что я так информативно излагаю что мне не по душе, чем если бы я написал: "мне не понравилась программа" или "неудобная программа".

Спасибо за внимание.

K.A.V. 09-09-2012 14:28 1985520

Цитата:

Цитата Ka3hak
Моё сообщение - это всего лишь "отзыв" о программе. »

А я разве что-то сказал про это? Я вижу что это отзыв, просто я привык развёрнуто отвечать на каждое предложение пользователей, относящиеся к программе

Цитата:

Цитата Ka3hak
Всё же, согласитесь, хорошо что я так информативно »

...что я так развёрнуто отвечаю на ваше сообщение, а не просто говорю "Спасибо за отзыв о программе" ;)

Цитата:

Цитата Ka3hak
Всё же, согласитесь, хорошо что я так информативно излагаю что мне не по душе, чем если бы я написал: "мне не понравилась программа" или "неудобная программа". »

Конечно соглашусь, это гораздо лучше...Если бы была возможность сделать интерфейс более "кучным", то я бы сделал это...Но, впринципе, и так всё находится под рукой...
Мне кстати кажется это более удобным (выпадающий список с необходимыми функциями), чем передвигаться (как в других программах) по дереву настроек, +на каждой страничке ещё есть с десяток вкладок...

Limonica 10-09-2012 19:22 1986265

KAV как сделать так, чтоб процесс распаковщика принудительно прекращался, не проверяя выполнился процесс или нет?

Limonica 10-09-2012 20:04 1986284

И ещё, я вам точно говорю функция перезаписи неработает sours.nsi не вписывается строка:
Цитата:

SetOverwrite try
При всех четырёх положениях таже ошибка перезаписи.

K.A.V. 11-09-2012 06:22 1986474

Цитата:

Цитата Limonica
не проверяя выполнился процесс или нет? »

При добавлении приложения поставить галочку "Не ждать завершения исполнения"?

Цитата:

Цитата Limonica
И ещё, я вам точно говорю функция перезаписи неработает »

А я вам говорю, что всё прекрасно работает
Выделите в списке файлов проекта необходимую запись, как появятся данные для редактирования записи в двух полях ниже, только тогда устанавливайте настройку перезаписи файлов, об этом написано в файле справке!

У меня всё прекрасно работает, тестировал на системном файле svchost.exe, чтобы уж наверняка :)

P.S.
Если вы не обновились до последней версии (на днях было обновление ccode.exe), то у вас не будет работать настройка "Перезаписывать старые")

Limonica 11-09-2012 14:24 1986659

Можете добавить в "Порядок выполнения команд" - "Выполнить собственные функции"?

K.A.V. 11-09-2012 14:33 1986670

Limonica, возможность выполнения собственных NSIS функций создана для выполнения функций только до или после распаковки файлов, так что данная "Дополнительная возможность" вряд-ли будет доступна для управления ею в "Порядке выполнения команд"

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

Limonica 11-09-2012 22:27 1987001

Цитата:

Цитата K.A.V.
При добавлении приложения поставить галочку "Не ждать завершения исполнения"? »

Не то!

K.A.V. 11-09-2012 22:34 1987008

Цитата:

Цитата Limonica
Не то! »

Ну значит объясните более понятно, чего вы хотите добиться, ибо
Цитата:

Цитата Limonica
чтоб процесс распаковщика принудительно прекращался, не проверяя выполнился процесс или нет? »

я могу понять только как "как запустить приложение отдельным потоком и не ждать его завершения"

По другому вашу фразу понять не могу

Limonica 12-09-2012 08:48 1987150

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

K.A.V. 12-09-2012 13:06 1987312

Цитата:

Цитата Limonica
запускается исполняемый файл, но в нём по видимому ошибка и процесс распаковщика так же остаётся висеть в диспетчере задач, не выполняя при этом других задач »

Это впринципе невозможно...Т.к. NSIS всего-лишь посылает команду на запуск приложения и сразу же переходит к следующей строке кода, и NSIS никак в данном случае не взаимодействует с запущенным приложением

Поэтому зависание процесса распаковщика (при выбранном "Не ждать завершения исполнения") в вашем случае больше похоже на фантастику, чем на реальность (так же как и "неработоспособность переключателя перезаписи файлов")

Возможно ваш распаковщик спотыкается на чем-то другом...

pytex 12-09-2012 22:18 1987630

Народ,
нужна переменная PROGRAMDATA (что соответствует пути c:\ProgramData\ )
она же ALLUSERSPROFILE

есть возможность добраться для общей папки всех пользователей?

Limonica 12-09-2012 22:34 1987642

Эта переменная $PROFILE

pytex 13-09-2012 00:07 1987670

Limonica, неа, это не она.

Дэмиен 13-09-2012 05:40 1987726

K.A.V., возможно ли реализовать функцию исключения в разделе "Компоненты"!? То бишь, при выборе одного компонента, галочка снималась бы с другого! Что-то типа этого!...)) Или диалог, на подобии диалога "Выбора компонентов", но с Радиокнопками! Было бы полезно! :) Хотя и так, в программе уже много возможностей, что ее смело можно отнести к категории программ для создания инсталляторов, нежели к самораспаковывающимся архивам! :teeth:

K.A.V. 13-09-2012 07:56 1987753

Цитата:

Цитата pytex
Народ,
нужна переменная PROGRAMDATA (что соответствует пути c:\ProgramData\ )
она же ALLUSERSPROFILE
есть возможность добраться для общей папки всех пользователей? »

Здравствуйте :)

Вы можете использовать любые переменные операционной системы в SFX Creator, если необходимой переменной в SFX Creator нет, то вам необходимо указывать в поля SFX Creator переменную, заключенную в символы % и перед переменной ставить символ переменной SFX Creator - $

Например, в вашем случае, вам необходимо в поля в SFX Creator указывать вот так:
Код:

$%ALLUSERSPROFILE%

Так же, вы можете использовать любую переменную из временных сред ОС (пример переменных на Windows 7)
читать дальше »

Код:

$%ALLUSERSPROFILE% ==C:\ProgramData
$%APPDATA% ==C:\Users\{username}\AppData\Roaming
$%COMMONPROGRAMFILES% ==C:\Program Files\Common Files
$%COMMONPROGRAMFILES(x86)% ==C:\Program Files (x86)\Common Files
$%COMSPEC% ==C:\Windows\System32\cmd.exe
$%HOMEDRIVE% ==C:
$%HOMEPATH% ==C:\Users\{username}
$%LOCALAPPDATA% ==C:\Users\{username}\AppData\Local
$%PROGRAMDATA% ==C:\ProgramData
$%PROGRAMFILES% ==C:\Program Files
$%PROGRAMFILES(X86)% ==C:\Program Files (x86) (only in 64-bit version)
$%PUBLIC% ==C:\Users\Public
$%SystemDrive% ==C:
$%SystemRoot% ==C:\Windows
$%TEMP% ==and$%TMP% ==C:\Users\{username}\AppData\Local\Temp
$%USERPROFILE% ==C:\Users\{username}
$%WINDIR% ==C:\Windows



---
Данной информации нет в файле справки к SFX Creator...Честно сказать, даже и не вспомнил об упоминании данной информации :(
На днях значит обновлю только файл справки и внесу данную информацию на страничку "Переменные SFX Creator"

---

Цитата:

Цитата Дэмиен
K.A.V., возможно ли реализовать функцию исключения в разделе "Компоненты"!? »

Может и возможно, честно сказать затруднюсь ответить однозначно, т.к. не уверен в положительном исходе, знаю только одно - при попытке разработки, мозг будет думать усиленно :)

Цитата:

Цитата Дэмиен
Или диалог, на подобии диалога "Выбора компонентов", но с Радиокнопками! »

А здесь однозначно нет

pytex 13-09-2012 08:18 1987760

Цитата:

Цитата K.A.V.
переменную, заключенную в символы % и перед переменной ставить символ переменной SFX Creator - $ »

Вот в чем секрет, по одному пробовал, а то, что их вместе нужно использовать, даже не подумал.
Спасибо. Значит все круто.

Еще вопрос по деинсталляции:
у меня в проекте импортируется ветка реестра,
но впоследствии при деинсталляции этой проги (созданным же в проекте модулем удаления) реестр никак не подчищается.
Как можно удалить хотя бы ту ветку что я импортировал?

vodo4nik 14-09-2012 06:12 1988386

Здравствуйте.
Вопрос: как задать для exe файла без иконки, иконку с другого ico файла.
Попробую пояснить на пальцах - есть ехешник у которого нет иконки, при задании параметров на компилирование нигде не нашел как указать, например, что ему надо брать иконку с рядом лежащего файла ico. После компиляции и установки (создании ярлыка на раб столе в меню _пуск_) этот файлик не имеет иконки. Например иконку для деинсталляции задать можно - указав путь к файлу ico. Как сделать такое для основного исполняемого файла. Если это придется делать через "собственные функции" - накидайте простенький скрипт-шаблон пожалуйста, поскольку в языке NSIS я не разбираюсь.

Второй вопрос: Ярлыки и папки с ярлыками, созданные в меню "Пуск" через диалог - Дополнительные возможности - Добавить ярлык не удаляются созданным программой деинсталлятором в W7x64. Ярлык, созданный через это же меню на Раб Столе удаляется нормально, как и установленные файлы. Вот в WXP SP3 например эти ярлыки и папки с ярлыками созданные в меню "Пуск" удаляются. Что сделать, чтобы они удалялись и на семерке?

Третий вопрос: какой командой запускать msi файл на выполнение, для страницы компонентов, например xnafx40_redist.msi. Спасибо.

odinokiyklaus 19-09-2012 13:58 1991455

Доброго дня всем!
Замечательно, что вы создали такое приложение. Респект и уважение!
Есть насущная необходимость для создания архива обладающего нетривиальными возможностями, но по порядку..

1. Цель - после получения архива, и его запуска он распаковывается в папку, которую выбирает сам пользователь. Видимость процесса роли не играет. После распаковки и установки файла блокировки (см. п.3), на папку с распакованным файлом нужно установить пароль с проверкой на:
a - проверкой на время или дату доступа к папке (к примеру, доступ разрешен только до 31 января 2012 года)
б - проверкой на количество регистраций в папке с паролем и после n-ного количества смена пароля или блокировка доступа..
2. После распаковки архива в какую-либо папку сохраняется файл блокировки,
3. Если к примеру срок давности прошел, или превышено количество входов в папку с паролем, и пользователь из почты скачивает этот же архив и пытается заново его распаковать, то в процессе распаковки проверяется наличие этого файла блокировки, и если он существует, то распаковка становится невозможна.

Уважаемые, может подскажите, как можно реализовать данный алгоритм работы??

K.A.V. 22-09-2012 16:24 1993080

Цитата:

Цитата pytex
но впоследствии при деинсталляции этой проги (созданным же в проекте модулем удаления) реестр никак не подчищается.
Как можно удалить хотя бы ту ветку что я импортировал? »

В данный момент никак. Деинсталлятор пока что не имеет настроек удаления, в следующей версии я уже планировал добавить такие же команды в деинсталлятор

Цитата:

Цитата vodo4nik
Как сделать такое для основного исполняемого файла »

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

Цитата:

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

Возможно моё упущение, т.к. с версией 2.6 чуток торопился, перепроверю позже

Цитата:

Цитата vodo4nik
Третий вопрос: какой командой запускать msi файл на выполнение, для страницы компонентов, например xnafx40_redist.msi. »

Сначала добавляете исполнение приложения через "Дополнительные возможности", затем просто относите нужную вам команду в необходимый компонент на страничке Компонентов


Цитата:

Цитата odinokiyklaus
1. Цель - после получения архива, и его запуска он распаковывается в папку, которую выбирает сам пользователь »

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

Цитата:

Цитата odinokiyklaus
После распаковки и установки файла блокировки (см. п.3), на папку с распакованным файлом нужно установить пароль »

Сторонее ПО вам в помощь на установку паролей на папки, средствами операционной системы устанавливать пароли на папки невозможно

Limonica 22-09-2012 17:48 1993135

У готового инсталлятора необходимо изменить манифест, как это сделать если при добавлении или изменения в нём (манифесте) данных выскакивает ошибка NSIS.

K.A.V. 22-09-2012 19:04 1993172

Limonica, ошибка NSIS возникает потому, что вы вносите изменения в тело EXE-файла, а т.к. NSIS проверяет контрольную сумму, изменять EXE файл после компиляции не нужно...

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

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

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

Limonica 22-09-2012 20:48 1993239

А можно ли назначить уровень прав ещё на этапе сборки?

K.A.V. 22-09-2012 20:57 1993249

Цитата:

Цитата Limonica
уровень прав »

Прав чего?
CRCCheck off это не проверка "прав", а отключение проверки целостности пакета инсталлятора

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

Limonica 22-09-2012 21:40 1993274

имеллось ввиду добавление записи в манифест на этапе сборки.

K.A.V. 22-09-2012 22:23 1993302

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 1993512

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

K.A.V. 23-09-2012 17:10 1993542

Цитата:

Цитата Limonica
Добавьте пожалуйста эту опцию в новую версию программы например рядом с перезаписью. »

Добавлю в "Управление проектами" выпадающий список

Salmo 24-09-2012 18:30 1994077

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

K.A.V. 24-09-2012 18:59 1994096

Salmo, версия SFX Creator последняя?
В Windows XP проблем с самоудалением нет, насчет тестирования данной возможности в других ОС ничего сказать не могу, т.к. выполнить тест не имею возможности

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

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

Salmo 24-09-2012 19:31 1994116

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

Salmo 24-09-2012 19:54 1994127

Переустановил накатом (или нужно полное удаление?). Создал новый архив с опцией самоудаления. После распаковки...открылось окно проводника "Мои документы" с деревом папок...

K.A.V. 24-09-2012 20:20 1994143

Salmo, файл проекта скиньте сюда, что у вас там такого необычного, что заставляет SFX Creator поступать таким странным образом, даже не знаю...

Salmo 24-09-2012 20:56 1994163

Сделал проект из одного файла:

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

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

Salmo 24-09-2012 21:19 1994178

Исходник:

читать дальше »

; ========== 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 1994328

Salmo, лично у меня всё прекрасно работает...
У вас видимо какая-то сборка операционной системы?

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

Salmo 25-09-2012 13:00 1994467

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

Salmo 25-09-2012 14:31 1994501

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

K.A.V. 25-09-2012 14:54 1994515

Цитата:

Цитата Salmo
На ХР поведение по прежнему странное - открывается папка Мои документы »

Если бы на моей системе было такое поведение - я бы разбирался, а почему именно у вас не работает функция самоудаления, ответить затрудняюсь, возможно в DLL проблема, которая удаляет SFX архив

Цитата:

Цитата Salmo
Запускался архив с Рабочего стола »

А с корня диска пробовали?

Цитата:

Цитата Salmo
А как раскрывается переменная SFX Creator - $PLUGINSDIR, куда "улетают" DLL? »

Данная директория создаётся в папке $TEMP (временная папка в профиле пользователя) со случайным именем

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

Salmo 26-09-2012 03:28 1994857

Цитата:

Цитата K.A.V.
А с корня диска пробовали? »

Да
Цитата:

Цитата K.A.V.
Кстати, у вас ОС не х64 случайно? »

Нет

Спасибо, пока оставим, как есть.

Salmo 27-09-2012 20:44 1995770

K.A.V., добрый день... Долго думал, стоит ли баламутить тему... Никто не пишет, видимо, все работает у них... А у меня все не так... Ну это лирика. Теперь по делу. Скачал программу по новой, установил. Делаю простенький пакет: батник и текстовый файл. Батник содержит команду на удаление текстового файла, а затем. - пауза. Создаю четыре пакета, в которых выбраны четыре возможных варианта запуска приложений, задаваемые режимом: Скрыть окно (Не скрывать), Не ждать завершения (ждать).
Три варианта, когда: 1 Не выбрано ничего, 2 выбран верх, 3 выбран низ, - пакет распаковывается, запускается батник, текстовый файл удаляется.
При четвертом же варианте настроек : выбран верх и низ, т.е. Скрыть окно и не ждать завершения команды, команда не проходит - батник не запускается, файл не удаляется, хотя распаковка есть.

Вот исходник этого варианта:

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:\SFX_Creator\Avira.txt"
SetOverWrite on
SetOutPath "$INSTDIR"
File "D:\SFX_Creator\CMDs.cmd"
ExecDos::exec /NOUNLOAD /ASYNC /DETAILED '"$INSTDIR\CMDs.cmd" ' "" ""
call POST_Function
RMDir /r /REBOOTOK "$TMPDIR"
quit
FunctionEnd

Наличие процессов контролировались следящими программами. Win XP/32.
Пишу это к сведению, срочности нет...

wakeup.wakeup 29-09-2012 16:19 1996606

Вложений: 1
Добрый день K.A.V.!

Возможно ли реализовать в "SFX Creator" раздел диалогового окна наподобие этого? Был бы очень признателен если бы вы мне помогли.

K.A.V. 29-09-2012 18:53 1996663

Salmo, здравствуйте :)
Цитата:

Цитата Salmo
батник не запускается, файл не удаляется »

Батник как раз и запускается, но файл не удаляется по простой причине, сейчас объясню:

Всё дело в том, что при запуске BAT файла у него есть такое понятие как "текущая директория", а она имеет путь директории, откуда был запущен инсталлятор...
Т.е. вам сначала нужно использовать команду "cd" в батнике для смены текущей директории окружения, а затем только удалять файл (если не прописываете полный путь)

Как вариант я вам могу посоветовать распаковку батника в директорию $TEMP (указывайте в проекте), а в самом BAT файле изменяйте текущую дерикторию командой:
Код:

cd %TEMP%
И вообще, зачем такие извращения, для удаления файла??
Есть же в SFX Creator "Дополнительные возможности => Добавить файловую операцию"


---

Цитата:

Цитата wakeup.wakeup
Добрый день K.A.V.! »

Здравствуйте :)
Цитата:

Цитата wakeup.wakeup
Возможно ли реализовать в "SFX Creator" раздел диалогового окна наподобие этого? »

На данный момент такой возможности нет, и вряд ли будет в ближайшее время, т.к. там очень много ньюнсов
Создать такую страничку можно самому, но тогда придётся перед каждой компиляцией проекта вносить изменения в исходный код вашего проекта уже на языке NSIS
Я мог бы вам помочь, но в данное время у меня очень мало личного времени

Salmo 29-09-2012 20:24 1996702

Цитата:

Цитата K.A.V.
И вообще, зачем такие извращения, для удаления файла?? »

Удаление файла только для визуального контроля запуска батника.
Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач?
Если забыть про удаление файла, то все, что я хотел сказать, заключается во фразе: "Батник НЕ запускается, когда выбраны пункты Скрытие Окна и Не ждать окончания..." Как я написал, в батнике прописана команда PAUSE и процесс CMD должен висеть в диспетчере задач, что и происходит при других настройках, когда эти пункты не выбраны оба одновременно... Когда они выбраны оба, запуск НЕ происходит. Могу допустить, что это происходит только у меня, тогда, нет смысла мне больше об этом писать. :)
Цитата:

Цитата K.A.V.
Тестируем программку и не стесняемся задавать вопросы »

Еще раз спасибо за труд...

K.A.V. 29-09-2012 21:39 1996743

Цитата:

Цитата Salmo
Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач? »

Нет...
В данном случае "скрытие" - это всего лишь скрытие окна командной строки, не более

Цитата:

Цитата Salmo
Когда они выбраны оба, запуск НЕ происходит »

Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться

Timofejj 30-09-2012 15:31 1997065

K.A.V.
Премного благодарен за столь полезную программу. А тут как-то WinRar примитивен к 7-sfx привыкнуть не могу (крут, но есть куча недостатков). Inno Setup понравилась (шедевры творить можно), NSIS как-то не очень. До остальных руки ещё не дошли (перечисленных с головой хватает). Ещё раз благодарю за труд!

Salmo 30-09-2012 15:43 1997078

Цитата:

Цитата K.A.V.
Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться »

Сделал, но...увы. Далее, без особой цели, не меняя настройки, добавил в пакет еще VBSскриптик и дополнительную команду на Shell-запуск и... стала выполнятся и команда запуска батника, правда, через раз. Что изменилось? - очевидно, время жизни процесса...
Тогда решил запускать свой батник (без дополнительных файлов и команд) с параметром /TIMEOUT=, чтобы определить, сколько нужно дополнительного времени процессу, чтобы нормально подгрузить библиотеку и выполнить функции. Оказалось, что, в моем случае, ~100 миллисекунд:
..............................
SetOutPath "$INSTDIR"
File "D:\SFX_Creator\CMDs.cmd"
SetOverWrite on
SetOutPath "$INSTDIR"
File "D:\SFX_Creator\Avira.txt"
ExecDos::exec /TIMEOUT=100 '"$INSTDIR\CMDs.cmd" ' "" ""
call POST_Function
RMDir /r /REBOOTOK "$TMPDIR"
quit
FunctionEnd

И, добавив в свой примитивный скрипт задержку на 100 миллисекунд, получил стабильный запуск батника со скрытием окна, без ожидания конца процесса...:
.............................
SetOverWrite on
SetOutPath "$INSTDIR"
File "D:\SFX_Creator\CMDs.cmd"
ExecDos::exec /NOUNLOAD /ASYNC '"$INSTDIR\CMDs.cmd" ' "" ""
Sleep 100
call POST_Function
RMDir /r /REBOOTOK "$TMPDIR"
quit
FunctionEnd

Salmo 01-10-2012 20:11 1997929

Уважаемый К.А.В. А можно в Вашу замечательную программу добавить проверку наличия прав Администратора?

K.A.V. 03-10-2012 09:25 1998810

Salmo, значит потом добавим эту паузу в 400 мс, на всякий случай)

Цитата:

Цитата Salmo
А можно в Вашу замечательную программу добавить проверку наличия прав Администратора? »

Буквально страничку назад пролистайте, было такое пожелание...Позже добавим

Limonica 08-10-2012 12:44 2001319

Срочно нужна помощь, нужен скрипт проверяющий архитектуру системы и в зависимости от неё выполнял действия, пример:
проверка архитектуры:
Цитата:

x86=x86 inst
x64=x64 inst

x86 inst:
...
...
....

x64 inst:
....
....
...
...

Sergal 08-10-2012 15:49 2001419

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

Marfeika2012 09-10-2012 13:22 2002006

Привет всем. Народ подскажите пожалуйста как в SFX Creator сделать так чтобы упакованный в обычный rar или zip архив файл exe который скомпливировала эта программа автоматически удалялся или удалялся бы сам архив вместе с содержимом. Тоесть открываешь winrar архив нажимаешь два раза на исполняемый файл после чего у меня архив закрывается(в настройках программы нашел) но не удаляется хоть и стоит галочка на самоудаление.

Limonica 09-10-2012 15:08 2002065

Функция защиты от распаковки снова не работает при включённой фукции самоудаления.

Marfeika2012 09-10-2012 19:12 2002220

Народ это снова я. Не подскажите как можно сделать самоудаление архива sfx который упакован в winrar.
Или же как расспаковать файл туда же где находится сам файл exe который скомпливирвала данная программа.

Salmo 09-10-2012 23:09 2002377

Marfeika2012, Я вижу спецы молчат...
Если я вас правильно понял, вы запускаете файл sfx.exe прямо в окне архиватора без предварительного извлечения из архива winrar? В этом случае, упакованный sfx.exe извлекается архиватором во временную папку %TEMP% и запускается в ней. При этом, функция самоудаления, заданная при компиляции sfx архива, будет выполнятся относительно файла sfx.exe, который находится во временной папке. Чтобы удалить архив winrar (с файлом sfx.exe) надо sfx.exe перед запуском извлечь из архива winrar (а не запускать в окне архиватора) в папку с архивом winrar и, после закрытия окна архиватора, запустить. Предварительно, до компиляции в SFX Creator, надо задать функцию самоудаления sfx.exe и файловую операцию по удалению архива winrar с переменной пути $EXEDIR. Добавлю, что функция самоудаления на моих машинах с ХР и Win7 не сработала, что может произойти и у других пользователей. Я же использую для самоудаления простой VBS скрипт, который создаю через "Выполнить собственные функции" и запускаю через Shell при распаковке sfx.exe, - не так красиво, но надежно...

Salmo 09-10-2012 23:26 2002388

Цитата:

Цитата Marfeika2012
как расспаковать файл туда же где находится сам файл exe который скомпливирвала данная программа. »

Задать в SFX Creator директорию установки $EXEDIR, а для файлов, входящих в архив, $INSTDIR

Marfeika2012 10-10-2012 17:35 2002863

а нет ли команды для того чтобы удалить rar архив после запуска exe файла. Или же как в WINRAR SFX там если пути не указывать то он расспаковывает в текущую папку.
Можно было бы расспаковать батник со строками удаления и все.
Подскажите пожалуйста.

Salmo 10-10-2012 22:43 2003041

Цитата:

Цитата Marfeika2012
а нет ли команды для того чтобы удалить rar архив после запуска exe файла »

Я же написал вам выше, что нужно в SFX Creator в поле "Дополнительные возможности" выбрать "файловая операция" и, в открывшемся окне, создать команду на удаление вашего rar архива (в поле "выбрать действие" выберите "удалить файл", а в поле "объект" впишите $EXEDIR\ваш_rar_архив). Если вы извлечете содержимое (sfx.exe) rar архива в текущую папку и запустите sfx.exe после закрытия окна архиватора, архив rar будет удален и будет удален sfx.exe, если вы зададите самоудаление. Вариант с батником это "огород", т.к. все можно осуществить функционалом SFX Creator...

Marfeika2012 10-10-2012 23:07 2003059

Спасибо огромное. Очень сильно помогли. Спасибо.

Marfeika2012 12-10-2012 14:06 2004126

Привет всем. Народ может не совсем в тему но всеже спрошу. А вобще в природе всетречаются редакторы msi файлов. Просто для создания нового msi нашел много различных программ а можно ли отредактировать имеющейся файл msi. Помогите пожалуйста с решением этого вопроса.

Salmo 12-10-2012 15:50 2004208

Цитата:

Цитата Marfeika2012
А вобще в природе всетречаются редакторы msi файлов. »

Вам туда: http://forum.oszone.net/thread-133587.html

Marfeika2012 12-10-2012 20:48 2004344

нет орка это классно. Но с английским плохо у меня а русского манула на нее нет. Нет ли программы для графического отображения того что ты редактируешь.
Спасибо за ссылку.

Salmo 12-10-2012 22:24 2004394

Marfeika2012,
Как вы понимаете, обсуждать работу с msi в этой теме не уместно... Дам вам две ссылки и разговор на этом закончу... извините.
Немного теории (рус) : http://habrahabr.ru/company/infopulse/blog/134119/
Некоторые инструменты (англ) : http://www.jsware.net/jsware/msicode.php5

Limonica 13-10-2012 18:23 2004721

Marfeika2012, перепаковка MSI рус. интерфейс Advanced Installer, англ. Install Shield, желаю удачи!

ps: первый всего 44мб :)

а на русском есть SuperOrca.

Marfeika2012 14-10-2012 13:14 2005038

Спасибо большое. То что нужно.

Дэмиен 17-10-2012 01:47 2006844

Если в разделе Компоненты, в один компонент добавить несколько команд, то при компиляции выходит ошибка!!! Нужно постоянно вручную редактировать Source.nsi, удалять лишние команды "SectionEnd"!


Вот пример, чтобы понятнее было:

Section /o "Имя компонента" SEC_ID1
SetOverWrite on
SetOutPath "$INSTDIR"
File "Имя файла"
SectionEnd <=ЛИШНЯЯ КОМАНДА!
SetOverWrite on
SetOutPath "$INSTDIR"
File "Имя файла"
SectionEnd

Дэмиен 17-10-2012 02:32 2006861

Еще на счет "диалога ярлыков по требованию"! Когда в инсталляторе в этом окне жмешь отмену установки, то все ярлыки все равно создаются, даже если сняты все галочки! И при деинсталляции они тоже остаются! Возможно ли это исправить? :) Просто, когда добавляешь команду на создание ярлыка в Компоненты, компиляция почему-то зависает, начинает до бесконечности вписывать одни и те же команды в Source.nsi! Поэтому использую "диалог ярлыков по требованию", но вот хотелось бы исправить выше сказанную проблему! Спасибо за внимание! :)

Limonica 17-10-2012 15:21 2007162

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

Marfeika2012 24-10-2012 20:12 2011499

Привет всем. Такой вопрос. Данная программа создает exe файл. Если в него при создание добавить подписанный инсталятор одной известной программы и скомпилировать вместе со своими файлами то антивир не ругается на отсутствие цифровой подписи. Но как можно обойти цифровую подпись, может есть у кого варианты шаманства.

Limonica 25-10-2012 08:21 2011739

это не такой форум. здесь подписи неподделывают.

Marfeika2012 25-10-2012 18:11 2012121

Я не хакер. Просто когда создаешь архив для человека и кидаешь ему, он скачивает и тут окно антивируса. Не очень то красиво. Хотя я нашел способ и успешно им пользуюсь. Спасибо за программу SFX Creator

Limonica 07-11-2012 23:46 2021188

K.A.V. сделайте пожалуйста поддержку плагина UAC http://nsis.sourceforge.net/UAC_plug-in или объясните как самостоятельно доделать его работоспособность? При компиляции программы, пишет, при перечислении допустимых команд плагинов, "UAC::_", может дело в кодировках?

Salmo 12-11-2012 17:51 2024205

Цитата:

Цитата Limonica
архивы не распаковываются на не русскоязычных версиях Windows »

Limonica, этот вывод еще в силе?
Есть ли опыт запуска архива на Win 8? - вопрос ко всем...

Limonica 13-11-2012 12:33 2024698

Salmo, нет не в силе, проблема в кодировке была. На Windows 8 полёт нормальный, но не работают некоторые плагины.

Salmo 17-11-2012 20:07 2027422

Цитата:

Цитата Limonica
но не работают некоторые плагины. »

Меня интересует ExecCmd. Случаем, не использовали?

Limonica 19-11-2012 01:14 2027995

ExecCmd работает, неработает SelfDel.

atsasinWTF 28-11-2012 23:11 2034958

интересует момент. а можно при создании указать свой файл конфигурации?
спасибо

как пример:

читать дальше »
;!@Install@!UTF-8!
InstallPath="%TEMP%\\TrojanRemover"
ExtractDialogText=" Cканер Trojan Remover

Для запуска будет распакован во временную папку:
%TEMP%\TrojanRemover
(для РЕ-сборок B:\ - это диск в памяти). Для работы нужно
примерно 15 Мб свободного места на диске. Может быть
использован для проверки дисков на трояны как под любой
РЕ-сборкой (будет нацелен автоматически на лежачую винду)
так и в стационарном Windows. При запуске из РЕ обращайте
внимание на возможное (при загрузке с внешнего HDD)
'смещение' буквы диска, на котором инсталлирован Windows
(например, C -> D).

Если под РЕ места на диске В: недостаточно, распакуйте
этот архив с помощью 7zip / WinRar / TC / FAR в любую папку
на свой HDD и запустите оттуда файл Rmvtrjan.exe.

При запуске с ключом -ai1 будет произведено обновление
баз антитрояна. Для корректной работы требуется не менее
30 Мб свободного места и наличие интернет-соединения,
поддерживаются системные прокси-серверы без авторизации.
Обязательно дождитесь окончания отработки скрипта !!!
Архив TrojanRemover.bas с новыми базами будет создан в:
%TEMP%
"
ExtractTitle="Извлечение файлов. Распаковано "
GUIFlags="1+8+32+2048"
OverwriteMode="10"
RunProgram="hidcon:Add_bases.cmd \"%%S\""
RunProgram="hidcon:cmd.exe /c if exist X:\I386\system32\Runscanner.exe (X:\I386\system32\Runscanner.exe /sd /f /m+ /n /t 0 Rmvtrjan.exe) Else Rmvtrjan.exe"
AutoInstall1="hidcon:Add_bases.cmd \"%%S\""
AutoInstall1="trupd.exe /install"
AutoInstall1="Updater.cmd \"%%S\""
AutoInstall2="hidcon:Add_bases.cmd \"%%S\""
AutoInstall2="hidcon:cmd.exe /c if exist X:\I386\system32\Runscanner.exe (X:\I386\system32\Runscanner.exe /sd /f /m+ /n /t 0 Trjscan.exe) Else Trjscan.exe"
Delete="%TEMP%\\TrojanRemover"
;!@InstallEnd@!

K.A.V. 29-11-2012 10:33 2035123

Цитата:

Цитата Дэмиен
Если в разделе Компоненты, в один компонент добавить несколько команд, то при компиляции выходит ошибка!!! Нужно постоянно вручную редактировать Source.nsi, удалять лишние команды "SectionEnd"! »

Цитата:

Цитата Дэмиен
Еще на счет "диалога ярлыков по требованию"! Когда в инсталляторе в этом окне жмешь отмену установки, то все ярлыки все равно создаются, даже если сняты все галочки! И при деинсталляции они тоже остаются! Возможно ли это исправить? Просто, когда добавляешь команду на создание ярлыка в Компоненты, компиляция почему-то зависает, начинает до бесконечности вписывать одни и те же команды в Source.nsi! Поэтому использую "диалог ярлыков по требованию", но вот хотелось бы исправить выше сказанную проблему! Спасибо за внимание! »

Всё проверю и устраню ошибки в ближайшее время

Цитата:

Цитата Limonica
K.A.V. сделайте пожалуйста поддержку плагина UAC »

Пока что не до внедрения плагинов, SFX Creator и без них сырой...
Цитата:

Цитата Limonica
При компиляции программы, пишет, при перечислении допустимых команд плагинов, "UAC::_" »

Скопируйте плагин UAC.dll в папку \NSIS\Plugins
Скопируйте UAC.nsh в папку \NSIS\Include
Пропишите строку в Source.nsi перед компиляцией: !include UAC.nsh
Должно сработать, сам не проверял :)

Цитата:

Цитата Limonica
ExecCmd работает, неработает SelfDel. »

Значит вернём способ с временным EXE файлом и дадим выбор пользователю, если SelfDel отказывается работать...будет в двух режимах данная возможность так сказать :)

Цитата:

Цитата atsasinWTF
интересует момент. а можно при создании указать свой файл конфигурации? »

SFX Creator не поддерживает импорт конфигураций, созданных в сторонних приложениях, SFX Creator совсем другое приложение и никакого отношения с 7-Zip SFX не имеет

magsood 30-11-2012 13:26 2035867

K.A.V.
Please Add EN Language

K.A.V. 30-11-2012 15:05 2035924

Я не знаю английского, поэтому Google переводчик мне в помощь :)

Цитата:

Цитата Google Translate
This program is only for Russian users


Salmo 30-11-2012 21:36 2036194

Просто реплика...
После подписывания архива цифровой подписью, слетает защита от распаковки...

K.A.V. 02-12-2012 13:56 2037040

Небольшое обновление, исправляющее следующие ошибки

Цитата:

Цитата Дэмиен
Если в разделе Компоненты, в один компонент добавить несколько команд, то при компиляции выходит ошибка!!! Нужно постоянно вручную редактировать Source.nsi, удалять лишние команды "SectionEnd"! »

Цитата:

Цитата Дэмиен
Еще на счет "диалога ярлыков по требованию"! Когда в инсталляторе в этом окне жмешь отмену установки, то все ярлыки все равно создаются, даже если сняты все галочки! И при деинсталляции они тоже остаются! Возможно ли это исправить? »

Исправлено! Запустите программу обновления

Цитата:

Цитата Дэмиен
Просто, когда добавляешь команду на создание ярлыка в Компоненты, компиляция почему-то зависает, начинает до бесконечности вписывать одни и те же команды в Source.nsi! »

Попробуйте после обновления проделать те же операции в "Компонентах", будет зависать? В той версии я просто что-то много чего нахимичил, когда добавлял возможность раскидать порядок выполнения команд... :)


---
Цитата:

Цитата Salmo
Просто реплика...
После подписывания архива цифровой подписью, слетает защита от распаковки... »

Попробуйте обновиться, и в диалоге "Управление проектами" поставьте галочку "Пауза перед патчем"
После создания инсталлятора SFX Creator покажет сообщение, в этот момент подпишите инсталлятор, затем нажмите "Ок" и SFX Creator поставит защиту от распаковки

О результате отпишитесь, сработает или нет такое колдовство...

Salmo 02-12-2012 17:14 2037176

Цитата:

Цитата K.A.V.
Попробуйте обновиться, и в диалоге "Управление проектами" поставьте галочку "Пауза перед патчем"
После создания инсталлятора SFX Creator покажет сообщение, в этот момент подпишите инсталлятор, затем нажмите "Ок" и SFX Creator поставит защиту от распаковки »

Выполнил... Подпись после патча становится недействительной, архив же открывается архиватором...

K.A.V. 02-12-2012 17:52 2037195

Salmo, защита от распаковки не лично моя разработка, поэтому нужно на прямую писать автору данного детища...

Как вариант, остаётся только "матрёшка"
Т.е. сначала создаёте инсталлятор с защитой от распаковки (со всеми файлами инсталляции), затем этот же инсталлер упаковываете в ещё один инсталлятор, который будет без защиты, но с цифровой подписью...
Правда всё это дело значительно увеличит время установки продукта, что не есть хорошо :(

Marfeika2012 03-12-2012 01:34 2037518

народ расскажите пожалуйста как вы подписываете архив цифровой подписью.

Nun-Nun 03-12-2012 11:20 2037659

K.A.V.,

При установке SFX Creator 2.6 окно программы открывается на заднем плане. Может сделаете, чтобы оно открывалось на переднем плане? Если не ошибаюсь, я когда-то раньше уже упоминал об этом дефекте.

Дэмиен 03-12-2012 12:56 2037701

K.A.V., спасибо за обновление, всё заработало! :)
Еще 2 предложения появились :), можно по умолчанию в ShortCuts.ini включить BackEnabled=1!?
И возможно ли добавить, к примеру в Дополнительные возможности -> Другие возможности, перед информации о версии )), раздел для редактирования заголовка инсталлятора!? По умолчанию задается заголовок окна и имя одинаковое! Вручную дописывать в Source.nsi команду Caption "Установка ${PRODUCT_NAME} ${PRODUCT_VERSION}" поднадоедает!...)) Просто, иногда надо чтобы в Name "${PRODUCT_NAME}" было только имя, а в заголовке имя с версией!

K.A.V. 03-12-2012 16:11 2037832

Цитата:

Цитата Nun-Nun
При установке SFX Creator 2.6 окно программы открывается на заднем плане. Может сделаете, чтобы оно открывалось на переднем плане? Если не ошибаюсь, я когда-то раньше уже упоминал об этом дефекте. »

Вы об этом писали уже 2 раза, и я вам уже отвечал, что похоже, данная проблема проявляется только на вашей системе, т.к. только вы один об этом пишите...У меня окно инсталлятора показывает поверх всех окон

Цитата:

Цитата Дэмиен
можно по умолчанию в ShortCuts.ini включить BackEnabled=1!? »

Обновитесь, исправил :)

Цитата:

Цитата Дэмиен
И возможно ли добавить, к примеру в Дополнительные возможности -> Другие возможности, перед информации о версии )), раздел для редактирования заголовка инсталлятора!? »

Это уже добавление функционала, поэтому будет чуть позже...

В быстрых обновлениях я только устраняю ошибки/недочеты, добавление функционала же будет только при выходе следующей версии...

Salmo 03-12-2012 18:13 2037916

Marfeika2012,
Ох, и любитель же вы задавать вопросы не по теме... Подписать исполняемый файл можно, купив сертификат в одном из центров сертификации или у посредников (интернет подскажет). Если же вам нужен временный сертификат для подписи, его нужно сгенерировать, например, с помощью пакета утилит Crypto4 PKI или средствами MS: http://msdn.microsoft.com/ru-ru/library/ms733813.aspx
Затем подписать файл с помощью, например, программы X2Net SignCode (я пользуюсь), используя временный сертификат. Но этот сертификат и подпись не будут узнаваемы на других машинах, как доверенные, пока сертификат не будет помещен в папку "Доверенные корневые центры сертификации" этих машин... Прошу эту тему больше не развивать, чтобы не засорять ветку...

По поводу защиты от распаковки после подписывания файла... Хотя появляется возможность распаковать защищенный архив после подписывания цифровой подписью, но будет доступна только информация о секциях PE файла, его структуре и ресурсах, так что можно считать исходную начинку архива достаточно защищенной...

atsasinWTF 03-12-2012 21:49 2038064

K.A.V.,
Не работает приветствие!


выставил, протестировал.
но оно не появляется.


Salmo 03-12-2012 22:44 2038102

atsasinWTF, Нужно поставить галочку "Задействовать UI оболочку"
А, если нужно просто сообщение перед установкой без графического интерфейса, - в главном окне в поле "Дополнительные возможности" выберите "Показать сообщение перед запуском"

Nun-Nun 03-12-2012 23:10 2038117

Цитата:

Цитата K.A.V.
похоже, данная проблема проявляется только на вашей системе »

Ну что ж, буду более точен: это происходит на всех компах, где пытаюсь установить Вашу утилиту! :o Если все они подпадают под выражение "на моей системе", то такая исключительность весьма сомнительна.

atsasinWTF 03-12-2012 23:34 2038125

Salmo,
если поставить галку "Задействовать UI оболочку", то при запуске появляется стандартный (большой) мастер установки!
на первом скрине показывается и даже тестируется маленькое окно приветствия, но оно не появляется! где логика? зачем тогда это "маленькое" приветствие, если оно не показывается?
Цитата:

Цитата Salmo
А, если нужно просто сообщение перед установкой без графического интерфейса, - в главном окне в поле "Дополнительные возможности" выберите "Показать сообщение перед запуском" »

спасибо,

Salmo 04-12-2012 00:10 2038142

Цитата:

Цитата atsasinWTF
на первом скрине показывается и даже тестируется маленькое окно приветствия, но оно не появляется! где логика? зачем тогда это "маленькое" приветствие, если оно не показывается? »

В этом окне показан вариант вашего приветствия. Сама надпись будет помещена на страницу приветствия мастера установки. Т.е. маленькое окно только для тестового просмотра... Как вижу, вам подошел второй вариант. Согласитесь, когда есть выбор, - это здорово, а привыкнуть к особенностям программы - дело времени...

Salmo 04-12-2012 00:36 2038149

Nun-Nun, Извините, что вмешиваюсь, меня заинтересовало ваше сообщение... Только я вижу, что вы говорите об окне самой программы, а K.A.V. об окне инсталлятора:
Цитата:

Цитата K.A.V.
У меня окно инсталлятора показывает поверх всех окон »

Уточните, о каком окне идет речь... Если программы, то это я решаю кнопочкой "Отображения окна программы поверх всех окон", т.к. у меня на ХР бывает, что окно программы улетает на задний план...

atsasinWTF 04-12-2012 00:59 2038154

Цитата:

Цитата Salmo
У меня окно инсталлятора показывает поверх всех окон » »

analogichno
Цитата:

Цитата Salmo
"Отображения окна программы поверх всех окон", »

gde nachoditsa?

Salmo 04-12-2012 02:13 2038193

Цитата:

Цитата atsasinWTF
gde nachoditsa? »

Открываем Справку - пункт "Главное окно программы"

Marfeika2012 04-12-2012 08:03 2038248

спасибо всем большое.

K.A.V. 04-12-2012 15:12 2038513

Nun-Nun, хотел вам написать ЛС, чтобы вы протестили 2 файла-пустышки установки...

Цитата:

Nun-Nun превысил(а) максимальный объем сохраненных персональных сообщений и не может получать новые сообщения, пока не удалит часть старых.

Nun-Nun 05-12-2012 17:01 2039283

K.A.V.,

Малость почистил ПМ. Скиньте ещё раз.

Nun-Nun 06-12-2012 10:36 2039700

K.A.V.,

Потестировал оба присланных тестовых варианта и ещё раз попробовал запустить "старый" инсталлятор, скачанный по ссылке в шапке темы. У обоих тестовых вариантов окно инсталлятора сразу же открывается на переднем плане, но если ставлю галочку в чекбоксе лицсоглашения и пытаюсь нажать кнопку "Далее" вместо неё появляется кнопка "Закрыть". Что касается "старого" инсталлятора, т.е. скачанного по ссылке в шапке темы, то при запуске его окно сразу же открывается на заднем плане.

K.A.V. 06-12-2012 15:33 2039960

Цитата:

Цитата Nun-Nun
У обоих тестовых вариантов окно инсталлятора сразу же открывается на переднем плане »

Это хорошо, значит так сделаем следующий инсталлер :)

Цитата:

Цитата Nun-Nun
но если ставлю галочку в чекбоксе лицсоглашения и пытаюсь нажать кнопку "Далее" вместо неё появляется кнопка "Закрыть" »

Это так и было задуманно, на то они и тестовые
Целью же было просто выяснить, будет нормально отображаться поверх окон или так же ускакивать на задний план :)

K.A.V. 07-12-2012 17:23 2040768

Небольшое обновление до версии 2.6.1


Диалог "Управление проектами"
[+] Самоудаление => переключатель выбора: DLL-метод / Сторонним EXE
[+] Пауза перед патчем
[+] Необходимые привилегии для установки
[+] Заголовок окна инсталлятора

[+] Дополнительные возможности => Создать программу удаления => Команды удаления

[-] Устранены ошибки

atsasinWTF 07-12-2012 17:51 2040787

K.A.V.,
Пожалуйста. сделайте возможность:
Вбивать свой заголовок окна
Убирать иконку
Вставлять свою иконку


atsasinWTF 07-12-2012 18:28 2040805

K.A.V.,
еще , интересует такой момент
создал екзэшник. который устанавливает все в C:\Program Files\bla
нужно, чтобы если запустить снова экзешник - он проверял наличие C:\Program Files\bla\bla.exe и если он есть, то запустил его.
это можно сделать в Вашем креаторе?
если нет, то пожалуйста сделайте возможность создавать подобные условия.
спасибо.

K.A.V. 07-12-2012 18:31 2040806

Цитата:

Цитата atsasinWTF
Вбивать свой заголовок окна »

Управление проектами => Заголовок окна инсталлятора

Цитата:

Цитата atsasinWTF
Убирать иконку »

Перед компиляцией (выберите в главном окне программы режим отладки "Только исходники"), отредактируйте главный файл исходник, найдя в нём команду на показ вашего сообщения, там будет строка такого типа:

Код:

MessageBox MB_OK|MB_ICONINFORMATION "Моё сообщение"
Удалите константу MB_ICONINFORMATION приведя команду к следующему виду:
Код:

MessageBox MB_OK "Моё сообщение"
Цитата:

Цитата atsasinWTF
Вставлять свою иконку »

Не вижу смысла городить огород в коде SFX Creator ради добавления такой сомнительной по важности плюшки, как вставка своих иконок

---
Цитата:

Цитата atsasinWTF
создал екзэшник. который устанавливает все в C:\Program Files\bla
нужно, чтобы если запустить снова экзешник - он проверял наличие C:\Program Files\bla\bla.exe и если он есть, то запустил его.
это можно сделать в Вашем креаторе?
если нет, то пожалуйста сделайте возможность создавать подобные условия »

Это всё частные случаи, которые нужны еденицам, поэтому именно для этого, в шапке темы есть информация в свёрнутом блоке "Устранение проблем/советы/помощь"

atsasinWTF 07-12-2012 18:53 2040820

Цитата:

Цитата K.A.V.
Перед компиляцией (выберите в главном окне программы режим отладки "Только исходники"), отредактируйте главный файл исходник, найдя в нём команду на показ вашего сообщения, там будет строка такого типа:
Код:
MessageBox MB_OK|MB_ICONINFORMATION "Моё сообщение"
Удалите константу MB_ICONINFORMATION приведя команду к следующему виду:
Код:
MessageBox MB_OK "Моё сообщение" »

может быть так будет правильнее и лучше?

Nun-Nun 07-12-2012 19:33 2040849

K.A.V.,

Попробовал запустить инсталлер новой версии: вроде, прошло нормально - окно открылось на первом плане; в понедельник попробую на других компах. Спасибо!

Salmo 07-12-2012 23:50 2041021

Цитата:

Цитата K.A.V.
[+] Необходимые привилегии для установки »

Спасибо за то, что проект развивается...
Хорошо, что теперь не надо вручную добавлять в код привилегии... Хотелось бы еще, не только иметь возможность добавлять в манифест привилегии, но и, чтобы инсталлятор сам определял наличие прав Админа (с отключенным UAC) и выдавал сообщение, что для установки пакета необходимо войти в систему с правами Администратора.
И еще, являясь счастливым обладателем Авиры, замучился отправлять в лабораторию к ним файлы SFX...
Авира очень не любит, когда в манифесте права Админа, когда активирована защита архива от распаковки. После признания ложно-положительного срабатывания и удаления сигнатур из антивирусных баз, все повторяется, стоит добавить в пакет новый файл. Постоянно общаться с Авировцами напрягает, но хуже то, что у потребителя (с Авирой) будет недоверие к пакетам...

Nun-Nun 08-12-2012 00:50 2041051

Цитата:

Цитата Salmo
Хотелось бы еще, не только иметь возможность добавлять в манифест привилегии, но и, чтобы инсталлятор сам определял наличие прав Админа (с отключенным UAC)...»

И выдёргивал вилку из розетки и гасил свет, если хозяин уснул. :lol:

Salmo 08-12-2012 01:43 2041078

Здоровый смех - это хорошо... :)
Но даже примитивные сборщики инсталлеров имеют эту функцию:

Очень полезно...

K.A.V. 08-12-2012 08:54 2041131

Цитата:

Цитата Salmo
Хотелось бы еще, не только иметь возможность добавлять в манифест привилегии, но и, чтобы инсталлятор сам определял наличие прав Админа (с отключенным UAC) »

Сделаем, не вопрос, возможно даже сегодня сделаю обновление и добавим целую область "Привилегии для установки" в "Управление проектами", там и будет выбор :)

Цитата:

Цитата Salmo
Но даже примитивные сборщики инсталлеров имеют эту функцию: »

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

K.A.V. 08-12-2012 10:34 2041154

Цитата:

Цитата Salmo
Хотелось бы еще, не только иметь возможность добавлять в манифест привилегии, но и, чтобы инсталлятор сам определял наличие прав Админа (с отключенным UAC) и выдавал сообщение, что для установки пакета необходимо войти в систему с правами Администратора. »

Обновляйтесь, тестируйте (добавил группу настроек в диалоге "Управление проектами")


P.S.
Так же загрузите пакет инсталлятора! Сейчас обновил, там была одна ошибка с удалением файла SelfDel.exe
:(

Salmo 08-12-2012 14:55 2041251

Цитата:

Цитата K.A.V.
Так же загрузите пакет инсталлятора! Сейчас обновил, там была одна ошибка с удалением файла SelfDel.exe »

Значит ли это, что автоматического обновления не достаточно?

И ещё, обратил внимание на то, что расширять возможности инсталлятора лучше за счет DLL, т.к. на системах имеющих ХИПС, запуск ЕХЕшников перехватывается, что требует дополнительных действий и внимания...

Начинаем капризничать :) А нельзя ли добавить возможность в поле "Типы файлов для кеширования" добавить "Все типы", бывает, что недостает внимания при заполнении этого поля, когда список внушительный, и файлы теряются...

K.A.V. 08-12-2012 15:18 2041258

Цитата:

Цитата Salmo
Значит ли это, что автоматического обновления не достаточно

Ошибка была в пакете инсталлятора, т.е. после установки SFX Creator, удалялся файл, чего быть не должно...
Если вы НЕ использовали пакет инсталлятора, а просто обновились через внутреннюю функцию обновления, то всё должно быть впорядке, можете проверить наличие файла SYS\ofiles\SelfDel.exe, данный файл нужен для возможности "Самоудаления" при выборе пункта "Сторонним EXE"

Насчет всех типов файлов в кешировании...
Сделаю, как только починю свой комп, сегодня сломался...

Salmo 08-12-2012 20:02 2041420

K.A.V., Здорово! Повыбрасывал из кодов лишние, теперь, блоки по определению прав пользователя, которые делал сам.
Проверил на ХР и Семерке - запрос прав Админа работает!

Теперь есть вопрос... У меня в проекте предусмотрена функция "Проверить запущенное приложение", при этом, флажок "Закрывать автоматически (без уведомления пользователя)" - НЕ стоит. Пользователю предлагается вручную выгрузить приложение (автоматике оно не по "зубам"). Оказалось, что при запуске пакета, после предложения выгрузить приложение и его ручной выгрузки, окно с предложением зависает (иногда самопроизвольно отвисает секунд через 40). Это происходит на ХР очень часто. На Семерке делал всего один запуск, глюка не было...
Что делал дальше... Открыл исходники и просмотрел... Не вдаваясь в тонкости кода, абсолютно методом тыка, как и принято у нас, :) выбросил вот эту функцию:
Код:

Function EnumProcessCall StrCmp $R3 "$3" 0 nokill ${KillProcess} "$5" $R4 nokill: FunctionEnd
которая располагалась первой, перед функцией определения наличия прав Админа и, далее, Function .onInit
Собрал инсталлятор. Отсутствие части кода компилятор не заметил... Далее, многократные запуски пакета проходили без зависаний, а контрольные запуски старого файла висли по-прежнему...
Если не затруднит, прокомментируйте, пожалуйста, написанное и дайте совет :read:

Limonica 08-12-2012 20:14 2041427

А как в своём скрипте проверить, есть ли права админа или нет?

Salmo 08-12-2012 20:26 2041432

Цитата:

Цитата Limonica
А как в своём скрипте проверить, есть ли права админа или нет? »

Limonica, В своём, - это в каком? Если это скрипт-исходник SFX Creatorа, то в версии 2.6.1 такая возможность уже есть.

Код:

Function GetAccountType
UserInfo::GetAccountType
Pop $1
StrCmp $1 "Admin" okAccountType 0
MessageBox MB_OK|MB_ICONEXCLAMATION `Для установки программы "${PRODUCT_NAME}" необходимо войти в систему с правами Администратора!$\n$\nПрограмма установки завершает свою работу`
quit
okAccountType:
FunctionEnd

Если вас интересуют CMD или VBS, - есть варианты...

K.A.V. 08-12-2012 21:07 2041450

Salmo, удалением данной функции из скрипта вы вырезали тот код, который отвечает за определение наличия процесса....Она универсальна и в неё передаются имена процессов по очереди

Какой процесс вы пытаетесь закрыть? Возможно это защищенный системный процесс или процесс антивирусного ПО?

Limonica 08-12-2012 21:09 2041451

Не, что то типа этого:

Код:

IfFileExists "Например проверка доступа к файлу или параметру, пока непонятно как это будет работать" 0 ADMIN

.....
....
......
....
Quit

 ADMIN:

.......
......
.
.......
Quit


Limonica 08-12-2012 22:33 2041508

Слушайте люди добрые, а как бороться с перенаправлением в 64 битных системах, для переменной $PROGRAMFILES, $PROGRAMFILES32, $PROGRAMFILES64 всё понятно, а для $SYSDIR O_o
, ведь перенаправляет в SysWOW64 :(

Salmo 08-12-2012 23:37 2041533

Цитата:

Цитата K.A.V.
Возможно это защищенный системный процесс »

Да, этот процесс от защитного ПО, поэтому выгружается средствами самой программы вручную. От инсталлятора требуется только определить его наличие, выдать предложение о закрытии, дождаться ручного закрытия и продолжить работу. Все это проделывает без зависания, именно урезанный код, а полный виснет.
Цитата:

Цитата K.A.V.
вы вырезали тот код, который отвечает за определение наличия процесса... »

В том-то и дело, что процесс определяется без этой части кода...

читать дальше »

Полный код, который приводит к зависанию.

Function EnumProcessCall
StrCmp $R3 "$3" 0 nokill
${KillProcess} "$5" $R4
nokill:
FunctionEnd
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Function GetAccountType
UserInfo::GetAccountType
Pop $1
StrCmp $1 "Admin" okAccountType 0
MessageBox MB_OK|MB_ICONEXCLAMATION `Для установки программы "${PRODUCT_NAME}" необходимо войти в систему с правами Администратора!$\n$\nПрограмма установки завершает свою работу`
quit
okAccountType:
FunctionEnd

Function .onInit
Var /Global CommandLine
!insertmacro GetParametersCall $CommandLine
${GetTime} "" "L" $Day $Month $Year $WeekDay $Hour $Minute $Seconds
StrCpy $TMPDIR "$TEMP\sfxcreator_$Minute$Hour$Seconds"
StrCpy $R0 0
newSearch_1:
${FindProcessName} "AVJF.EXE" $R1 ;Вот же, поиск есть
StrCmp $R1 "1" 0 end_1
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "Для продолжения необходимо выгрузить $\nПожалуйста, закройте приложение самостоятельно.$\n$\nМожете отказаться от установки, нажав кнопку 'Отмена'" idOK +2
quit
${KillProcess} "AVJF.EXE" $R1 ;Эта строчка тоже не нужна
sleep 1000
goto newSearch_1
end_1:
CreateDirectory "$TMPDIR"
call PRE_Function
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Код между \\\\\\\\\\\\\ компилируется без ошибок и дает возможность установщику определить наличие процесса, ждет его ручное закрытие и отрабатывает, далее, без зависаний. Я, когда удалял верхнюю часть, подумал, что она относится только к Убиванию процесса(?), что мне не требовалось.

Может есть этому объяснение...
А может функция определения прав Админа "всунулась" не туда и должна быть над Function EnumProcessCall ? Или это не важно? (Проверил позже, - перемещение ничего не дает)

Проверил все еще раз. Скомпилировал все заново. Полный код виснет. Урезанный работает.

Salmo 09-12-2012 00:04 2041544

Цитата:

Цитата Limonica
ведь перенаправляет в SysWOW64 »

Задайте путь $%WinDir%\Sysnative вместо $SYSDIR. Требуется проверка. Вопрос по этому поводу задал ниже...

Я не разбирался в возможностях NSISа в этом отношении, но ясно, что для 32 битного процесса, коим является процесс инициируемый инсталлятором, необходимо перенаправление отключать, чтобы попасть в System32, что морочно. Я пока делаю так: Добавляю в пакет батник, который запускаю через %WinDir%\Sysnative\cmd в 64 битной среде с правами Админа, и он уже ковыряется в System32.

Если нужно что-то патчить, а патчи 32 битные, то надо, с помощью того-же батника, скопировать нужные файлы на нейтральную территорию (TEMP), став их владельцем и получив полный доступ, пропатчить и вернуть назад, восстановив владельца и права доступа. Если оригинальные файлы в System32 переписать не удается, чаще всего получается их переименовать и, после перезагрузки, удалить, если необходимо. Так, что CMD еще живо :)

truvo 09-12-2012 20:05 2041981

K.A.V., мне не совсем понятно, если человек первый раз зашел в тему - какие из вложений ему скачать для получения свежайшего варианта?

Salmo 09-12-2012 21:28 2042027

truvo, Извините, что отвечаю, хотя вопрос не ко мне... Если программа не установлена - Setup_rar. Если установлена, достаточно запустить автоматическое обновление и все "свежее" поселится у вас :)
Можете учесть это сообщение: http://forum.oszone.net/post-2041258-517.html

truvo 09-12-2012 23:33 2042090

Salmo, зайдя впервые в тему, сложно понять, в чем смысл того сообщения.

Salmo 10-12-2012 00:10 2042099

truvo, Да, согласен, трудновато... Смысл такой: Если у вас была установлена программа ранее, возможно, она содержит ошибку (отсутствует нужный файл). Поэтому, после автоматического обновления, нужно проверить его наличие по пути SYS\ofiles\SelfDel.exe. Успехов...

K.A.V., Здравствуйте. Еще вопрос, в связи с вопросом Limonica. Если я пропишу путь установки для файла, используя виртуальную папку Sysnative для 64 битной системы, как программа переварит такой вариант, получу ли я доступ в System32? У меня нет 64 битной винды, проверить не могу...

truvo 10-12-2012 01:19 2042135

Salmo, но если я собрался, впервые зайде в тему, скачать по вашему совету Setup_rar - у меня же не установлена эта программа ранее, это же ясно! Зачем вы тогда отсылаете к тому сообщению? Или вы полагаете, что в сегодняшнем Setup_rar у автора осталась какая-то старая ошибка?

Salmo 10-12-2012 02:04 2042149

truvo, Нет, в этом пакете ошибки нет. Мой ответ Вам начинался фразой:
Цитата:

Цитата Salmo
Если программа не установлена - Setup_rar. »

- этим можно было ограничиться (и мне и Вам), но я больше сосредоточился на фразе:
Цитата:

Цитата truvo
какие из вложений ему скачать для получения свежайшего варианта? »

То, что Вы впервые в этой теме, явно не подразумевает, что Вы не скачали ранее еще где-нибудь эту программу, поэтому, я упомянул второй вариант, учитывая, что еще кто-то интересуется вопросом обновления... Извините, что сделал Вас жертвой многословия... :)

K.A.V. 10-12-2012 15:56 2042480

Цитата:

Цитата Salmo
Все это проделывает без зависания, именно урезанный код, а полный виснет. »

Это впринципе невозможно, т.к. в вашем случае данная функция никогда не будет вызвана
Функция "EnumProcessCall" будет вызвана лишь в том случае, когда вы включаете убитие процесса по, например, "части имени окна"
В вашем же случае (поиск по имени процесса) данная функция никогда не будет вызвана...
И зависание происходит не от того, что в скрипте присутствует функция, а из-за чего-то другого, а причину вам придётся искать самостоятельно


Цитата:

Цитата Salmo
${KillProcess} "AVJF.EXE" $R1 ;Эта строчка тоже не нужна »

"Не нужна" только в вашем случае! Вы помните оригинал сообщения, которое было написано выше данной команды??
Я сделал функцию универсальной, поместив в один запрос выбор пользоваелю...
Если процесс найден, то пользователю показывается сообщение и он сам решает, позволить ли пакету инсталлятора самому убить процесс, либо же пользователь сам закроет указанное приложение и только потом нажмёт кнопочку "ОК"
Так что данная строчка не лишняя ;)

Цитата:

Цитата Salmo
А может функция определения прав Админа "всунулась" не туда и должна быть над Function EnumProcessCall ? »

Порядок функций в данной ситуации не имеет значения

Цитата:

Цитата Salmo
Проверил все еще раз. Скомпилировал все заново. Полный код виснет. Урезанный работает. »

Я уже объяснил...Значит виснет у вас на другом месте, но никак не из-за функции, которая никогда не выполняется в вашем пакете инсталлятора

---
Цитата:

Цитата truvo
K.A.V., мне не совсем понятно, если человек первый раз зашел в тему »

Встроенная функция обновлениея в SFX Creator создана для таких как вы :)
Update_2.6.1.zip для тех, у кого установлена программа Сентябрьской версии 2.6
Update_8.12.2012.zip для тех, у кого установлена версия 2.6.1


Цитата:

Цитата Salmo
K.A.V., Здравствуйте. Еще вопрос, в связи с вопросом Limonica. Если я пропишу путь установки для файла, используя виртуальную папку Sysnative для 64 битной системы, как программа переварит такой вариант, получу ли я доступ в System32? У меня нет 64 битной винды, проверить не могу... »

Сам без понятия...Нет возможности установить более совершенную систему отличную от WinXP, про 64-bit ОС вообще молчу... :)

Salmo 10-12-2012 17:44 2042551

Цитата:

Цитата K.A.V.
"Не нужна" только в вашем случае! »

Да я и имел в виду, что только в моем случае, понял, что части кода не лишние, а делают код универсальным, позволяющим пользователю делать выбор. Видимо зависание связано именно с выгружаемой программой и, именно, с этой. Понимаю, что это частный случай. Но так как пакет будет работать именно с этой программой, то мне придется учитывать эту особенность. Спасибо, что уделяете мне время...

K.A.V. 10-12-2012 17:52 2042556

Цитата:

Цитата Salmo
Но так как пакет будет работать именно с этой программой, то мне придется учитывать эту особенность »

Ну тогда чуть измените код, и, пропишите просто сообщение, как вы и сделали, но только чуток измените команду после нажатия ОК, у вас сейчас при нажатии ОК идёт попытка убития процесса, можете сделать, чтобы был просто повторный поиск...вот так:

Код:

MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "Для продолжения необходимо выгрузить $\nПожалуйста, закройте приложение самостоятельно.$\n$\nМожете отказаться от установки, нажав кнопку 'Отмена'" idOK -2
Ничего из кода не удаляйте, а просто замените символ + на - :)

P.S.
А если по хорошему и у вас проект будет постоянно компилироваться новыми версиями, и, чтобы при каждой компиляции не заморачиваться редактированием исходников, можете создать "Выполнить собственные функции" и просто подключаемая заранее написанная вами функция будет подключаться к проекту :)

Salmo 10-12-2012 19:39 2042642

Цитата:

Цитата K.A.V.
можете сделать, чтобы был просто повторный поиск...вот так: »

Спасибо учту...
Цитата:

Цитата K.A.V.
чтобы при каждой компиляции не заморачиваться редактированием исходников »

Да я и не заморачиваюсь особо. В папке NSIS у меня хранятся все модернизированные исходники к моим проектам и я их просто копирую вместо созданного и просматриваю. Так нагляднее, хотя, когда будут отработаны окончательные варианты, может быть, сделаю так, как вы советуете... Спасибо.
У меня на основе SFX Creatorа уже сделаны несколько псевдо-портативных утилит, т.е. я не применяю пакеты только по прямому назначению, как инсталляционные пакеты, что имеет свои особенности. Например, ранее я вам писал, что плагин ExecDos.dll не любит запускать батники в скрытом виде, без ожидания конца работы батника (помните я просил добавить паузу после команды - это тоже не решало проблему для сложных батников, которые имеют разветвленные функции, - они зависали). Я стал использовать для запуска батников исключительно ExecCmd.dll, который этой проблемы не создавал. Писать об этом Вам не стал, потому, что ожидал ответ: "плагин только запускает батник и никак не влияет на его дальнейшую работу..." Но практика показала, что без ожидания конца работы батника он с запуском не справляется. Есть еще один нюанс... для случая, когда пакет помещен в автозагрузку. В этом случае, с запуском батника не всегда справлялся и плагин ExecCmd.dll (пакет распаковывался, но пуск не происходил). Т.е в этой экстремальной ситуации, когда грузится система и процессор нагружен, плагин не успевает корректно подгрузиться и выполнить свою функцию. Понятно, что до сути причин в этих случаях докопаться почти невозможно, поэтому я ищу другие варианты. Например, в случае с автозагрузкой (помня, что скрипты VBS меня никогда не подводили) я решил добавить в код свою функцию по созданию файла скрипта VBS для скрытного запуска батника без ожидания конца работы, что исключило сбои при запуске. Но такой вариант не очень изящный, потому, что подменяет штатные функции SFX Creatorа и, как я уже писал, запуск дополнительных исполняемых файлов перехватывают ХИПСЫ, если они есть в системе... Так, что имеется много частных случаев применения пакетов, которые имеют свои особенности и Вам, как разработчику программы, конечно, их учитывать было бы нереально... и не нужно :) Программа же Ваша, обладая значительной гибкостью, дает большие возможности решать эти не стандартные ситуации. Спасибо...

K.A.V. 10-12-2012 20:05 2042664

Цитата:

Цитата Salmo
В папке NSIS у меня хранятся все модернизированные исходники к моим проектам и я их просто копирую вместо созданного и просматриваю »

читать дальше »
Ну, как я уже увидел из всех ваших сообщений, вы пользуетесь SFX Creator'ом постоянно, поэтому...впринципе могу добавить чисто для вас такую возможность, при которой SFX Creator не будет создавать из файла проекта исходный код, а будет копировать готовый *.nsh файл и обрабатывать именно его при запуске процесса компиляции, но надо ли это вам? :)
К примеру, добавить в файла проекта *.INI строку с указанием *.nsh файла, который стоит обрабатывать при компилировании, а не создавать новый


Цитата:

Цитата Salmo
Писать об этом Вам не стал, потому, что ожидал ответ: "плагин только запускает батник и никак не влияет на его дальнейшую работу..." »

Ну а это вы зря...Откуда вы знаете, каков бы был мой ответ?
Я ведь, знаете ли, вообще SFX Creator'ом не пользуюсь...
Идея создания SFX Creator вообще появилась у меня после прочтения статьи Создание SFX архива, посмотрев на которую я подумал, что возможно, у меня получится сделать для пользователей автоустановки что-то более простое, понятнее и более функциональное, чем WinRAR SFX и 7z SFX
Конечно же, знал о таком детище как Модифицированный SFX модуль 7-Zip'а для установок, но лично для меня он кажется сложноватым...слишком много ненужных символов в командах и начинающему сложно (как мне кажется) разобраться во всех тонкостях...

Я пишу SFX Creator для народа, и, каким будет SFX Creator зависит исключительно от пользователей программы...
Да, я не программист с образованием и не смогу реализовать все ваши пожелания относительно того-же неудобного графического интерфейса программы, как тут кто-то высказывался...Но постараюсь сделать всё, что в моих силах и в рамках моих знаний :)

Так сказать, делаю как умею... :)

Salmo 10-12-2012 22:04 2042733

Цитата:

Цитата K.A.V.
Ну, как я уже увидел из всех ваших сообщений, вы пользуетесь SFX Creator'ом постоянно »

Да, с некоторого времени, переделал некоторые свои творения с использованием SFX Creator'а. Причина - маленький модуль, почти в 3 раза меньше того, который создавала программа, которой я пользовался, но главная причина в том, что она не обеспечивала запуск пакетов на Вин8 ( автор не верно подошел к решению интерфейса, включив на постоянной основе, функцию выбора типов ОС, ограниченную его списком, в котором нет Вин8), а я хочу сделать утилиту совместимую с восьмеркой... Правда, справедливости ради, скажу, что проблем с требуемыми мной функциями, у пакета не было ни в каких экстремальных ситуациях.
Цитата:

Цитата K.A.V.
впринципе могу добавить чисто для вас такую возможность, при которой SFX Creator не будет создавать из файла проекта исходный код, а будет копировать готовый *.nsh »

Спасибо, не надо меня так баловать :) ( ну только, если не сложно), лучше решать обще-потребительские задачи, раз Вы настроены расширять функционал программы. (напомню просьбу добавить в кеширование "все типы" файлов)
Цитата:

Цитата K.A.V.
Ну а это вы зря...Откуда вы знаете, каков бы был мой ответ? »

Извиняюсь, :) но такой ответ уже звучал то ли здесь, то ли в ветке по NSIS (автора не помню), найти уже не реально, но в память мне врезался хорошо, потому, что именно в этот момент возникли проблемы с запуском батника через ExecDos.dll и я промолчал...
Цитата:

Цитата K.A.V.
Идея создания SFX Creator вообще появилась у меня после прочтения статьи Создание SFX архива, посмотрев на которую я подумал, что возможно, у меня получится сделать для пользователей автоустановки что-то более простое, понятнее и более функциональное »

Меня эта статья, в свое время, отпугнула. Я не хотел тратить мозги на осваивание вспомогательных инструментов, лучше уделять внимание собственному проекту, поэтому, меня привлекла именно Ваша программа и подход к реализации функций. Зачем мучиться с китайскими палочками, осваивая их, когда есть удобная ложка :)
Цитата:

Цитата K.A.V.
Я пишу SFX Creator для народа, и, каким будет SFX Creator, зависит исключительно от пользователей программы... »

Готовы терпеть все капризы пользователей? Ну, тогда Вам терпения и мужества...
Цитата:

Цитата K.A.V.
не смогу реализовать все ваши пожелания относительно того-же неудобного графического интерфейса программы »

Этот диалог я помню, именно тогда я появился на форуме. Надо понимать, что функциональность важнее красивостей. Автор не оценив гибкость программы по достоинству и ее функционал, сосредоточился на второстепенном...

К.А.V, скажите, нужно ли напоминать о пожеланиях, которые вы одобрили и решили реализовать, но их пока нет какое-то время?
И еще, моя активность в теме и словоохотливость выглядят нескромно?

K.A.V. 11-12-2012 05:30 2042846

Цитата:

Цитата Salmo
Спасибо, не надо меня так баловать ( ну только, если не сложно) »

Да не сложно...Там прописать то впринципе пару строк, чтобы просто код не создавался, а сразу компилировался с подменой исходника :)

Цитата:

Цитата Salmo
Зачем мучиться с китайскими палочками, осваивая их, когда есть удобная ложка »

Вот я и захотел создать именно такую "ложку" :yes:

Цитата:

Цитата Salmo
Готовы терпеть все капризы пользователей? »

Я готов реализовать тот функционал, который реально необходим SFX Creator'у, а не просто пихать в код всё, что пользователи захотят...У каждого свои потребности и подстраиваться под желания каждого пользователя это будет не правильно, поэтому рассматриваем реальные проблемы и добавляем тот функционал, который может пригодиться всем при создании SFX

Цитата:

Цитата Salmo
К.А.V, скажите, нужно ли напоминать о пожеланиях, которые вы одобрили и решили реализовать, но их пока нет какое-то время? »

Вообще, все увиденные пожелания в данной теме я сохраняю в txt файл, в котором у меня заметки на следующую версию/исправления, лежит у меня он в папочке с исходниками SFX Creator, но вот после поломки компа, про
Цитата:

Цитата Salmo
напомню просьбу добавить в кеширование "все типы" файлов »

запамятовал, потому что не было возможности сохранить :)
Сегодня к вечеру, думаю, будет обновление ;)

Если есть что-то ещё, оглашайте, возможно что-то и упустил :)

Цитата:

Цитата Salmo
И еще, моя активность в теме и словоохотливость выглядят нескромно? »

Да всё хорошо, активный участник, который заинтересован в развитии проекта и помогает другим пользователям программы решать возникшие проблемы при работе с программой, за это вам несомненно +

Salmo 11-12-2012 18:23 2043250

K.A.V., Здравствуйте. Сегодня пытался работать в программе на 7ке на 10 дюймовом экране... Работой это не назовешь, потому, что окно программы обрезано снизу по линии "дополнительные возможности", что не дало возможности довести дело до результата - готового пакета. В общем, какие у пользователя семерки возникнут трудности?
читать дальше »

1. Если Пользователь работает исключительно под учеткой простого пользователя, он не сможет работать в программе, установленной в папку Programm Files, если отключен UAC. Программы, работающие с правами простого пользователя, не имеет допуска на создание файлов в папке программ, а SFX Creator сохраняет файлы настроек, проектов и исходники именно в своей папке по-умолчанию. Включенный UAC запросом дает возможность поднять права программы до административных привилегий (надо Пользователю знать пароль Админа), но работать не комфортно (у меня, например, не работало перетаскивание в окно).
Выход: 1. Устанавливать SFX Creator в Общие папки/Документы Пользователей, тогда программа работает под простым Пользователем и беспрепятственно обновляется.
2. Работать в ней под учеткой Администратора (UAC может быть в любом состоянии отк\вкл), тогда место установки SFX Creator'а не критично, но предпочтительно все-таки в папках, которые не затрагиваются системой восстановления, потому, что, пользователь, по забывчивости, не сделав бэкап своих проектов, которые он недавно создавал, потеряет их, запустив восстановление (потом придется делать откат, если поймет, что произошло, - морока). Второй вариант, я думаю, предпочтительней, - кто знает, какие еще функции SFX Creator'а требуют повышенных прав...

Хотелки:
1. Мне часто приходится, пред установкой многофункционального пакета, создавать точку восстановления системы. В этом случае, я всегда включаю в пакет окно предложения сделать это или отказаться. Можно ли эту функцию реализовать SFX Creator'ом и будет ли она востребована?

K.A.V. 11-12-2012 18:57 2043280

Цитата:

Цитата Salmo
Сегодня пытался работать в программе на 7ке на 10 дюймовом экране... Работой это не назовешь, потому, что окно программы обрезано снизу по линии "дополнительные возможности", что не дало возможности довести дело до результата - готового пакета. »

Знаю о проблеме с нестандартными разрешениями и с увеличенным dpi в частности, пока проблему устранить не могу... :(


Цитата:

Цитата Salmo
он не сможет работать в программе, установленной в папку Programm Files »

В SFX Creator нет жесткой привязки к устанавливаемому каталогу, так что пользователь может его изменить...
Но с другой стороны, было бы не плохо уведомить об этом пользователя...Сделаем проверку ОС в пакете инсталлятора и будем предупреждать пользователя об этом, такой вариант думаю подойдёт? :)

Цитата:

Цитата Salmo
Мне часто приходится, пред установкой многофункционального пакета, создавать точку восстановления системы. В этом случае, я всегда включаю в пакет окно предложения сделать это или отказаться. Можно ли эту функцию реализовать SFX Creator'ом и будет ли она востребована? »

Впринципе, можно сделать обычное окно сообщения с запросом...Как таковой SFX Creator не является программой для создания пакетов инсталляторов (хотя умеет ;) ), поэтому делать именно графическое сообщение с диалогом будет не правильным
Посмотрю завтра, что можно сделать, вроде бы для NSIS я как-то тестировал плагин для создания точек восстановления...
Можем просто в "Дополнительную возможность" добавить новый пунктик :)
Завтра завтра всё скажу, сегодня уже неохото капаться :blush2:

---
Вышло обновление
1. В "Управление проектами" в поле "Типы файлов для кеширования" укажите маску *.* для кеширования всех типов файлов в проекте
2. Salmo, ;)
читать дальше »

1. Создайте каталог MySources в каталоге SFX Creator
2. В INI файл проекта пропишите новую секцию:
Код:

[ccode]
Source=MyTEST

3. Скопируйте файл MyTEST.nsi в папку MySources
При наличии указанного вами файла в параметре "Source" SFX Creator не будет создавать каждый раз при компиляции новый исходный код из данных проекта, а будет копировать указанный вами файл в каталог "NSIS", подменяя Source.nsi

Limonica 11-12-2012 18:59 2043282

KAV, samoudalenie ispol'zuya dll nerabotaet!

K.A.V. 11-12-2012 19:05 2043289

Цитата:

Цитата Limonica
KAV, samoudalenie ispol'zuya dll nerabotaet! »

Только что проверил - всё работает!
Если вы о раннем заявлении на Windows 8, то специально для этого я вернул самоудаление методом EXE файла, выберите метод самоудаления "Сторонним EXE" в диалоге "Управление проектами" и проверьте работоспособность

DLL писал не я, и что-то там исправить я не смогу...Не программист я :)

Salmo 11-12-2012 19:55 2043312

Цитата:

Цитата K.A.V.
В "Управление проектами" в поле "Типы файлов для кеширования" укажите маску *.* »

Здорово, но как пользователь узнает, что маска поддерживается? Надпись Вы не стали менять, сложно? Я думал будет, что-то так: "Типы файлов для кеширования (*.* - все типы)" Не настаиваю :)

K.A.V. 11-12-2012 20:27 2043331

Цитата:

Цитата Salmo
но как пользователь узнает, что маска поддерживается? »

Интуитивно :)
А вообще, потом будет упоминание об этом в файле справке

Цитата:

Цитата Salmo
Надпись Вы не стали менять, сложно? Я думал будет, что-то так: "Типы файлов для кеширования (*.* - все типы)" »

Так и должно было быть, просто сконцентрировался на функционале и про изменение информационной строки просто напросто забыл, исправлю позже...К тому же, это не критично, как мне кажется, мало кто кеширует всё подряд, в основном это исполняемые файлы и файлы, к которым создают ярлыки

Salmo 11-12-2012 23:47 2043524

K.A.V., Все забываю спросить, в NSIS, случайно нет возможности прямо внедрять в код команды с синтаксисом CMD, как это есть в VBS\CMD? Не создавать файлы скриптов, а прямо выполнять команды в коде...

И еще, поле в окне "Выполнить приложение" с названием "Командная строка приложения" какой цели служит? В справке нет пояснений... По аналогии с другими программами, я подумал, что это поле ввода параметров командной строки для данного приложения, которое введено в поле "Путь" или я не так понимаю? Тогда прошу просветить и упомянуть синтаксис...
Нашел причину зависания скриптов при выгрузке приложения - ХИПС, ограничивал права процесса, если включал режим обучения, он создавал правила по своему вкусу и приостанавливал процесс...

А нельзя в окне "определение ПО" в поле поиск пути к файлу по значению параметра в реестре, еще дополнительно считывать его во временную переменную $UNVAR, чтобы использовать в других функциях кода, а не повторять поиск еще раз - очень полезно для автообновления пакетом...Я так понимаю, что переменная с путем $0, так внутри функции PRE_Function и "умирает"? Чувствую, что мои вопросы скоро вызовут веский совет :read:
Капризы.... :lol: Сейчас кто-нибудь напомнит, что можно еще чайник кипятить, картошку чистить...

Salmo 12-12-2012 17:49 2044071

Не могу получить сворачивание всех окон командой из справки по NSIS, цитата:
В начале кода:

!include "WinMessages.nsh"

А вот и сама команда:

FindWindow $0 "Shell_TrayWnd" ""
SendMessage $0 ${WM_COMMAND} 0x019f 0

Куда только не вставлял... Надо выполнить самой первой, до проверки Админских прав.

K.A.V. 12-12-2012 18:22 2044090

Цитата:

Цитата Salmo
K.A.V., Все забываю спросить, в NSIS, случайно нет возможности прямо внедрять в код команды с синтаксисом CMD, как это есть в VBS\CMD? Не создавать файлы скриптов, а прямо выполнять команды в коде... »

Например?
Можно обращаться к системным приложениям, которые в System32 каталоге, но думаю это совсем другое...

Цитата:

Цитата Salmo
И еще, поле в окне "Выполнить приложение" с названием "Командная строка приложения" какой цели служит? »

Цитата:

Цитата Salmo
По аналогии с другими программами, я подумал, что это поле ввода параметров командной строки для данного приложения, которое введено в поле "Путь" или я не так понимаю? »

Так и есть :)
Чтобы не путать пользователей, решил сделать именно отдельное текстовое поле для указания параметров запуска приложения, чтобы не писать всё в одно поле, путь к файлу+параметры...

Цитата:

Цитата Salmo
А нельзя в окне "определение ПО" в поле поиск пути к файлу по значению параметра в реестре, еще дополнительно считывать его во временную переменную $UNVAR, чтобы использовать в других функциях кода »

Нельзя, а смысл то какой? Если определение ПО хоть и пройдёт успешно, данные всё равно нигде не будут использованы в дальнейшем коде
А если уж вы затачиваете скрипты под себя, то и добавьте нужную вам переменную самостоятельно, вот так...
Код:

var /global UNVAR ; Создаём переменную в любой части кода
StrCpy $UNVAR $0 ; Созданной переменной присваиваем значение, которое хранится в переменной $0

Цитата:

Цитата Salmo
Не могу получить сворачивание всех окон »

Нууу ии что я должен здесь вам ответить? :)
Почему "не можете"? Ошибку при компиляции выдаёт, или просто сворачивание окон не происходит?

Salmo 12-12-2012 19:16 2044117

Цитата:

Цитата K.A.V.
вы затачиваете скрипты под себя »

Да, получается, что так...
Цитата:

Цитата K.A.V.
Почему "не можете"? Ошибку при компиляции выдаёт, или просто сворачивание окон не происходит? »

Не происходит сворачивание

Inko7 12-12-2012 19:56 2044138

Как можно сделать так, чтобы индикатор процесса распаковки закрашивался постепенно при распаковке одного большого файла?
Сейчас он долго стоит пустой, а затем сразу прыгает на 100%.

alert30 13-12-2012 15:58 2044646

Inko7, а Вы ставили галку "Отобразить распаковку"?

K.A.V. 13-12-2012 16:16 2044656

Цитата:

Цитата Salmo
Не происходит сворачивание »

Какая ОС? На WinXP всё работает...Возможно, что какой либо софт на вашей машине блокирует системные сообщения от сторонних программ? (в данном случае от пакета инсталлятора)

Цитата:

Цитата Inko7
Как можно сделать так, чтобы индикатор процесса распаковки закрашивался постепенно при распаковке одного большого файла? »

Никак

Цитата:

Цитата alert30
Inko7, а Вы ставили галку "Отобразить распаковку"? »

Прогресс расчитывается путём подсчета количества файлов => уровень прогресса увеличивается после распаковки файла

Inko7 13-12-2012 16:29 2044660

Цитата:

Цитата K.A.V.
Никак »

жаль

а можно сделать хотя бы так, чтобы текст заголовка окна распаковки и текст над строкой прогресса отображался сразу при появлении этого окошка?
Сейчас, окно появляется без заголовков пока не распакуется весь файл. Речь идет про распаковку одного большого файла.

K.A.V. 13-12-2012 17:11 2044682

Цитата:

Цитата Inko7
Сейчас, окно появляется без заголовков пока не распакуется весь файл »

Запустите встроенную функцию обновления SFX Creator, подправил ccode.exe, после обновления текст будет появляться сразу после показа баннера

Inko7 13-12-2012 18:54 2044741

K.A.V.
Да, сейчас вроде заголовки появляются вовремя.

Вопрос по окну компиляции:
после нажатия на кнопку "Компилировать" основное окно сворачивается, а окно компиляции не появляется. Вернее, оно как-бы есть, т.е. при нажатии на появившуюся иконку в трее что-то разворачивается и сворачивается (виден эффект), но самого окна не видно. Такой глюк заметился в последних версиях. В 2.5 окно компиляции появлялось нормально. Система: Win XP Pro SP3. Это у меня только такой эффект?

K.A.V. 13-12-2012 19:36 2044767

Цитата:

Цитата Inko7
Вопрос по окну компиляции:
после нажатия на кнопку "Компилировать" основное окно сворачивается, а окно компиляции не появляется »

Так и задуманно :)

Цитата:

Цитата Inko7
Вернее, оно как-бы есть, т.е. при нажатии на появившуюся иконку в трее что-то разворачивается и сворачивается (виден эффект), но самого окна не видно. »

Не нажимайте дважды ;)
1 клик - показ окна, ещё один клик - скрытие

Это новое окно компиляции было введено с версии 2.6, основное отличие от обычного окна компиляции это то, что можно быстро выяснить причину ошибки при компиляции, если она возникнет
К тому же, с данным нововведением стал доступен полный лог процесса компиляции...

Inko7 13-12-2012 21:50 2044844

Цитата:

Цитата K.A.V.
Не нажимайте дважды
1 клик - показ окна, ещё один клик - скрытие »

Да, так и делаю:
один клик - эффект открытия окна, но его нет. Появляется какой-то выглядывающий кусочек заголовка окна (похоже на него) в верхнем левом уголке, но он не хватается и не вытягивается.
второй клик - эффект сворачивания и уголок исчезает.
Вот и думаю, это мой местный глюк или все-таки что-то сломалось? Повторюсь, на прежней версии все было ок.

Salmo 14-12-2012 00:05 2044926

Делал функцию "Создание точки восстановления системы" без библиотек, запуская напрямую через WMIC:
Код:

Function PRE_Function
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "Желаете создать точку восстановления системы?$\n$\nМожете отказаться, нажав кнопку 'Отмена'" idOK +2
goto End
nsExec::Exec '"$SysDir\Wbem\WMIC.exe" /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "Name", 100, 12' "" ""
Pop $0
Delete TempWmicBatchFile.bat
End:
FunctionEnd

Создается прямо на рабочем столе TempWmicBatchFile.bat пустой, приходится удалять... никак не избавиться, маячит на столе, пока создается точка.

K.A.V. 14-12-2012 10:06 2045076

Цитата:

Цитата Inko7
Вот и думаю, это мой местный глюк или все-таки что-то сломалось? Повторюсь, на прежней версии все было ок. »

На Windows XP SP3 у меня всё работает, может у всех такой глюк и только у меня отображается окно компиляции? :o
Подождём ответа пользователей

Цитата:

Цитата Salmo
Делал функцию "Создание точки восстановления системы" без библиотек, запуская напрямую через WMIC: »

Чем вам плагин SysRestore plug-in не угодил? Можно его попробовать интегрировать в пакет инсталлятора, там вроде бы отмечается начальная точка создания точки восстановления и конечная, когда все действия инсталлера будут выполнены

ivan_fd 14-12-2012 16:07 2045268

Привет!

Интересует можно ли разбить архив на несколько файлов. Записать их на разные диски, что бы установка сама предлагала
указать место следующей части архива. WinRar это может, а здесь не могу найти.

Спасибо!

alert30 14-12-2012 16:27 2045279

Цитата:

Цитата ivan_fd
а здесь не могу найти. »

Потому что его нет.

K.A.V. 14-12-2012 16:29 2045282

ivan_fd, здравствуйте!
Прочитайте страничку в справке к SFX Creator
Меню SFX Creator => Настройка сжатия данных

SFX Creator может упаковать ваши файлы в 7-Zip архив разбив на тома, но перед запуском установки все части должны находиться в одной папке, иначе вы получите ошибку при запуске
А реализовать так, чтобы...

Цитата:

Цитата ivan_fd
что бы установка сама предлагала
указать место следующей части архива. »

...я не смог, т.к. для упаковки используется сторонняя программа 7-Zip и она контроллирует процесс распаковки

atsasinWTF 14-12-2012 17:37 2045333

Уважаемый K.A.V.,
Было бы просто здорово, если бы Вы реализовали поддержку фалов конфигураций 7sfx... )
Вашему SFX Creator - это было бы только плюсом!
пожалуйста )

все в одном! )

здесь http://forum.oszone.net/post-2034939.html#post2034939
что бы хотелось...
такого еще нигде не реализовано (

K.A.V. 14-12-2012 18:08 2045356

Цитата:

Цитата atsasinWTF
Было бы просто здорово, если бы Вы реализовали поддержку фалов конфигураций 7sfx... ) »

Я же писал пару постов назад насчет 7z SFX, тем более делать его поддержку в SFX Creator я не собираюсь...зачем?
Вникать в его особенности и синтаксис команд, в которых куча лишних (на мой взгляд) символов, которые в итоге мне придётся фильтровать мне как-то неохото...

Цитата:

Цитата atsasinWTF
здесь http://forum.oszone.net/post-2034939.html#post2034939
что бы хотелось...
такого еще нигде не реализовано ( »

хм, чего именно то, не реализованно??
1. В SFX Creator можно добавить папку целиком в проект
2. В SFX Creator есть возможность в текстовые поля вставлять файлы, которые добавлены в проект, эта возможность называется "Кеширование файлов проекта" (в файле справки "Главное окно программы => Управление проектами")

Ознакомьтесь со всеми возможностями программы, прочитав файл справки

Limonica 14-12-2012 19:05 2045390

KAV добавь пожалуйста опцию DisableX64FSRedirection в программу, в виде галочки, часто нужно.

alert30 15-12-2012 04:49 2045599

Цитата:

Цитата atsasinWTF
Было бы просто здорово, если бы Вы реализовали поддержку фалов конфигураций 7sfx... ) »

Стоит подумать, прежде чем это написать. Модулей и функции бывают разными.

Limonica 15-12-2012 18:40 2045942

+ уберите префикс "sfxcreator" у временной папки "$TMPDIR"

K.A.V. 16-12-2012 15:21 2046440

Цитата:

Цитата Limonica
KAV добавь пожалуйста опцию DisableX64FSRedirection в программу, в виде галочки, часто нужно. »

Добавим

Цитата:

Цитата Limonica
+ уберите префикс "sfxcreator" у временной папки "$TMPDIR" »

И чем же он вам мешает? Если вам не нравится префикс у временной папки, которую пользователь вряд-ли даже увидит, то удаляйте его самостоятельно перед компиляцией...

Limonica 16-12-2012 22:44 2046697

Если убирать самостоятельно теряется некоторый функционал, в частности "Защита от распаковки", возможно ли сделать опцию изменения префикса в интерфейсе?

K.A.V. 16-12-2012 22:49 2046700

Цитата:

Цитата Limonica
Если убирать самостоятельно теряется некоторый функционал, в частности "Защита от распаковки" »

Если бы вы ознакомились со всеми возможностями программы, то такого бы не написали

Справка SFX Creator => Главное окно программы => Режим отладки проекта
Читаем пункт "Только исходники"

Цитата:

Цитата Limonica
возможно ли сделать опцию изменения префикса в интерфейсе? »

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

Salmo 17-12-2012 16:23 2047317

Сегодня удалось в гостях запустить тест на 64 битной ОС. Прямой доступ к файлам System32 осуществляется через Sysnative, впрочем, так и должно быть, - почему NSIS должен быть исключением...

Limonica 18-12-2012 20:56 2048311

KAV спасибо за разъяснения, впредь буду внимательней, но есть одна великая проблема в интерфейсе SFXCreator - нельзя уменьшать его размер (стягивать), из за этого на виртуальной машине отображается лишь часть интерфейса, возможно ли решить эту поистине великую проблему?

K.A.V. 18-12-2012 21:13 2048323

Цитата:

Цитата Limonica
есть одна великая проблема в интерфейсе SFXCreator - нельзя уменьшать его размер (стягивать), из за этого на виртуальной машине отображается лишь часть интерфейса, возможно ли решить эту поистине великую проблему? »

Не поверите, но даже сам SFX Creator написан на NSIS :biggrin:
Поэтому думаю сами понимаете, на сколько огромны ограничения при написании интерфейса SFX Creator...И такой возможности "растяжки" окон нет...
Пока и у меня нет возможности протестировать полностью SFX Creator на других ОС или на виртуалке, из-за железа

Если не сложно, сделайте скриншоты окон SFX Creator, чтобы посмотреть, где и как обрезается интерфейс и при каких настройках экрана

Я уже думал над уменьшением масштабности всех диалогов, уменьшив шрифт во всех элементах окна, посмотрим, может получится хотя бы подгонять границы окон при разных настройках экрана

Salmo 19-12-2012 00:07 2048440

K.A.V., Я думаю, если учесть размер 10 дюймового монитора, этого будет достаточно...
Режутся всего 3 окна: Главное, Проверка установленного ПО, Настройки деинсталлятора.
http://3.firepic.org/3/images/2012-1...rm60dk3xwn.png

K.A.V. 19-12-2012 09:03 2048588

Цитата:

Цитата Salmo
Режутся всего 3 окна: Главное, Проверка установленного ПО, Настройки деинсталлятора. »

Дело не в окне SFX Creator, а в маленьком разрешении, я делал интерфейс на своём 1152х864...По вертикали у вас 600 маловато будет...Посмотрим, что можно будет сделать

Salmo 19-12-2012 10:35 2048649

Цитата:

Цитата K.A.V.
По вертикали у вас 600 маловато будет...Посмотрим, что можно будет сделать »

Этот экран я привел в качестве примера, как самого малогабаритного (нетбук). Это не значит, что я хотел бы работать с SFX Creator на таком устройстве :)

K.A.V. 20-12-2012 09:12 2049460

Цитата:

Цитата Salmo
Этот экран я привел в качестве примера, как самого малогабаритного (нетбук) »

В том то и смысл, что на столь маленьких разрешениях работают еденицы, и глобально что-то править в коде SFX Creator из-за небольшого процента таких пользователей нет особой нужды

Salmo 20-12-2012 19:15 2049886

Цитата:

Цитата K.A.V.
на столь маленьких разрешениях работают еденицы »

Согласен, тем более не хочется уменьшения шрифтов, - это будет не комфортно... Думаю, монитор 13 дюймов - это разумный предел.
Попробовал установить на 14 дюймов 1366х768. Окна не помещаются. Но сколько, сказать не могу, т.к. программа не установилась, в полном смысле этого слова. Все окончилось на окне соглашения - кнопок в окне нет:
http://3.firepic.org/3/images/2012-1...7lnswn4rqs.png (Виста 32бит)
Запустил голый ЕХЕшник с другого компа, получил пустое окно, но хотя бы увидел, что на 14 дюймах при разрешении 1366х768 тоже режет окна. Работаю же я на 15,6 дюймах (1280х800) - все отлично

Limonica 22-12-2012 11:26 2050833

KAV при выборе отладки, например "Только исходники", появляется белый значёк в трее и больше ничего не происходит, не по одинарному не по двойному щелчку мыши, и более того основное окно SfxCreator невозможно закрыть, приходится принудительно завершать в диспетчере задач, ОС Win XP SP3.
Пофиксите пожалуйста.

Talay 27-12-2012 07:36 2054250

K.A.V.,

огромное спасибо за Ваш труд.
Хочу у Вас спросить. Можно ли упакованный файл выполнить и тут же удалить и при этом упакованный файл был под паролем?

K.A.V. 28-12-2012 16:51 2055163

Вложений: 1
Цитата:

Цитата Salmo
Попробовал установить на 14 дюймов 1366х768. Окна не помещаются. Но сколько, сказать не могу, т.к. программа не установилась, в полном смысле этого слова. Все окончилось на окне соглашения - кнопок в окне нет: »

Здесь, мне кажется, проблема не в разрешении экрана, а именно в настройке DPI...сколько у вас точек на дюйм??

Цитата:

Цитата Salmo
при разрешении 1366х768 тоже режет окна »

Режет потому, что я писал SFX Creator на разрешении 1152х864 с 96 DPI, поэтому то, что на вашем разрешении окна не помещаются на экран - это нормальное поведение :)

Сейчас на новом мониторе у меня другие настройки DPI - 115 точек на дюйм (1920х1080), и тоже все элементы увеличиваются и не помещаются в диалогах программы

Уже нашел способ в коде программы определить, какое значение DPI установлено у пользователя, вот теперь сижу и думаю...как бы автоматизировать это всё и чтобы SFX Creator изменял размеры окон исходя из разрешения экрана+значения DPI :wacko:

---
Цитата:

Цитата Limonica
KAV при выборе отладки, например "Только исходники", появляется белый значёк в трее и больше ничего не происходит, не по одинарному не по двойному щелчку мыши, и более того основное окно SfxCreator невозможно закрыть, приходится принудительно завершать в диспетчере задач, ОС Win XP SP3. »

Попробуйте распаковать из прикреплённого архива EXE файл с заменой


---
Цитата:

Цитата Talay
Можно ли упакованный файл выполнить »

Читайте справку программы
Добавьте файл для распаковки в проект, затем
Код:

Дополнительные возможности  => Добавить выполнение приложения
Добавьте запись о запуске файла

Цитата:

Цитата Talay
и тут же удалить »

Код:

Дополнительные возможности  => Добавить файловую операцию
И чтобы сделать всё по порядку, в диалоге "Управление проектами" нажмите кнопку с красной и зелёной стрелкой, настройте очерёдность

tuz-veta 07-01-2013 04:17 2060782

K.A.V.,
Как сделать чтоб инсталятор автоматом искал на каком диске стоит программа и установил туда файлы?

Salmo 07-01-2013 05:34 2060793

tuz-veta, Если есть пути в реестре, например, в App Paths, я делаю так:
Код:

Function PRE_Function
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ИСПОЛНЯЕМЫЙ ФАЙЛ.exe" "Path"
IfFileExists "$0\ИСПОЛНЯЕМЫЙ ФАЙЛ.exe" PreokSoft_1 0
MessageBox MB_OK|MB_ICONEXCLAMATION "Внимание! Программа ХХХХХХХ не установлена!"
Quit
PreokSoft_1:
StrCpy $INSTDIR "$0"
FunctionEnd


tuz-veta 07-01-2013 21:00 2061343

Salmo,
А если там нет такого пути?

K.A.V. 08-01-2013 00:09 2061482

Цитата:

Цитата tuz-veta
Как сделать чтоб инсталятор автоматом искал на каком диске стоит программа и установил туда файлы? »

Это не разумно хотя бы потому, что "поиск" на всех дисках может занять длительное время и это не профессионально :)
Представьте выражение лица пользователя, который сидит и ждёт, пока "программа установки" прошерстит в поисках файла его хотя бы 2 ЖД, которые забиты по терабайту каждый...

Программа не оставляет за собой никаких следов в системе? Маловероятно, разве что это Portable приложение...

tuz-veta 08-01-2013 01:27 2061523

K.A.V.,
Спасибо я понял!
Прога очень суперовая!!!!! :up :up :up

tuz-veta 08-01-2013 02:05 2061544

Это у меня только,на виндовс 7 скины не работают ? :dont-know

K.A.V. 08-01-2013 02:39 2061557

Цитата:

Цитата tuz-veta
Это у меня только, скины не работают ? »

На Windows 7 у меня не работают :)
На Windows XP могут не работать из-за отсутствия необходимых библиотек (точно не помню каких, но минимум это mfc71.dll и gdi32.dll, возможно потребуется что-то ещё)

tuz-veta 08-01-2013 02:53 2061563

А как быть с ярлыками на компоненты?
если снимаю галочку с компонента то ярлык все равно создается на этот компонент.

alert30 08-01-2013 05:18 2061589

tuz-veta, лучше Вы бы прислали исходник, а то "что где не так" аж голову надо пошаманить.

K.A.V. 08-01-2013 11:15 2061668

Цитата:

Цитата tuz-veta
А как быть с ярлыками на компоненты?
если снимаю галочку с компонента то ярлык все равно создается на этот компонент. »

Опишите более подробно проблему
Вы, как я понял, создаёте пакет инсталлятора с выбором компонентов при установке, и в один из компонентов прописали создание ярлыка, но он создаётся даже если компонент не отмечен, так?

Проверьте ещё раз все данные в проекте, возможно, вы не в тот компонент команду на создание ярлыка отнесли :)

Или прикрепите к сообщению файл проекта, так мы сможем определить причину проблемы

tuz-veta 08-01-2013 14:43 2061788

Вложений: 1
K.A.V.,
Вот исходник

K.A.V. 08-01-2013 21:20 2062045

Вложений: 2
tuz-veta, вам необходимо отнести команду создания ярлыка в один из компонентов, чего вы не сделали...

Загрузите проект, затем откройте настройку компонентов и выберите из списка пункт Ярлыков
Затем выделите компонент слева, в который хотите отнести команду, и выберите команду, которую хотите отнести в нужный компонент

Нажмите кнопку "Отнести команду к выделенному компоненту"

tuz-veta 09-01-2013 02:13 2062175

K.A.V.,
Я понял,спасибо тебе большое!!!! :yahoo:

alert30 13-01-2013 15:36 2065835

K.A.V., не могли бы сделать поддержку Drag-and-Drop (перетаскивание файлов, к примеру, файл из Рабочего стола перетаскивает, удерживая левой кнопкой мыши в программу SFX Creator); так легче будет.

K.A.V. 13-01-2013 16:39 2065873

alert30, в главном окне (и в FastAdd панели, попробуйте её) есть данная штука, нооо она не работает, если перетащить несколько файлов одновременно (NSIS плагин), поэтому я не стал внедрять данную возможность в другие диалоги SFX Creator

JentRy 19-01-2013 03:09 2070084

K.A.V., к большому сожалению, в 64-битной ОС Win7 не производится импорт данных из файла реестра (*.reg). Используется диалог "Добавить импорт REG файла". Настройки программы, скриншоты и скомпилированный ".exe" файл нах-ся по ссылке: http://rghost.ru/43139858
В 32-битных ОС (Win7, XP) импорт данных в реестр завершается успешно.

Petya V4sechkin 19-01-2013 07:31 2070109

Цитата:

Цитата JentRy
скомпилированный ".exe" файл

Он ведь 32-битный, поэтому:

K.A.V. 20-01-2013 14:55 2070973

Вложений: 1
Цитата:

Цитата JentRy
K.A.V., к большому сожалению, в 64-битной ОС Win7 не производится импорт данных из файла реестра (*.reg) »

Производится, но в другую ветку, а именно сюда:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
Вы можете отключить данное перенаправление, для этого:
Добавить в главный исходник строку (в начале кода)
Код:

!include "x64.nsh"
Затем в начале функции .onInit добавить команду
Код:

${DisableX64FSRedirection}
И скопировать файл x64.nsh в папку (в прикреплённом архиве)
Код:

\NSIS\Include
---
Т.к. у меня было слабое железо, не было возможности тестировать в системах, отличных от Windows XP
Сейчас же, все основные тесты SFX Creator будут проходить на Windows 7, так же поставил на виртуальную машину Win 7 x64, в скором времени обещаю добавить настройку данного перенаправления, чтобы не редактировать постоянно исходники

JentRy 20-01-2013 18:07 2071073

K.A.V., благодарю Вас за подробные пояснения, а также за помощь в решении сложившейся ситуации! Было бы действительно прекрасно добавить поддержку 64-битных операц. систем, но пока же будем прибегать к предложенному Вами методу.

Petya V4sechkin, спасибо и Вам за предоствленные ссылки! Было полезно узнать о перенаправлениях.

Limonica 22-01-2013 11:16 2072198

KAV самоудаление с помощью DLL не работает на 32 разрядных осях начиная от WinVista, заканчивая Win8. На х64 всё нормально удаляется, кроме WinXP x64, вместо самоудаления открывается папка "Мои документы", удаления нет. Вариант использовать сторонний ехе неподходит, можете написать как реализовать данную функцию на BAT?

K.A.V. 22-01-2013 15:23 2072403

Цитата:

Цитата Limonica
KAV самоудаление с помощью DLL не работает на 32 разрядных осях начиная от WinVista »

Сейчас слава богу есть возможность проверить на разных ОС, странно, но на Win7 64 Bit удаление проходит, а на 32 битной Win 7 нет :dont-know
Вообщем обновил DLL, попробуйте обновить SFX Creator (через встроенную функцию) и перекомпилируйте проект, должно сейчас заработать

Limonica 22-01-2013 16:03 2072452

Всё удаляет, спасибо, проблема осталась только на ХР х64, проводник неоткрывается, но ехе не удаляется.

K.A.V. 22-01-2013 21:01 2072645

Цитата:

Цитата Limonica
есть одна великая проблема в интерфейсе SFXCreator - нельзя уменьшать его размер (стягивать), из за этого на виртуальной машине отображается лишь часть интерфейса, возможно ли решить эту поистине великую проблему? »

Цитата:

Цитата K.A.V.
Поэтому думаю сами понимаете, на сколько огромны ограничения при написании интерфейса SFX Creator...И такой возможности "растяжки" окон нет... »

В следующем обновлении, точнее в SFX Creator 2.6.2 будет возможность на разных настройках DPI экрана растягивать границы диалогов SFX Creator, что позволит видеть все элементы во всех диалогах SFX Creator
SFX Creator будет способен сохранить вашу "растяжку" и при следующем показе диалога установит те размеры границ диалога, которые были до закрытия диалога
Именно масштабирования/уменьшения элементов в диалоге не будет, будет только возможность менять границы в диалоге, но и это думаю уже не плохо, учитывая текущее состояние SFX Creator с увеличенной настройкой DPI...

Сделал так, что если установленная настройка DPI в системе отличается от стандартного 96, то отключается масштабирование элементов в диалогах (тексты, кнопки, текстовые поля и т.д.) т.к. я заметил, что при увеличенном DPI так же увеличиваются и сами элементы, да увеличиваются до таких размеров, что и они обрезаются, прочитать нереально...

Сейчас уже настроил диалоги под 115 DPI на разрешении 1920х1080, с элементами вроде всё в порядке, вот не знаю что будет при более высоких DPI, по идее не должно увеличиваться

tuz-veta 23-01-2013 02:52 2072827

K.A.V.,
подскажите пожалуйста,мне надо чтоб файл шрифта установился в C:\Windows\Fonts
ставлю переменную $FONTS выбивает ошибку.
как быть? :dont-know

K.A.V. 23-01-2013 07:26 2072865

Цитата:

Цитата tuz-veta
ставлю переменную $FONTS выбивает ошибку.»

Нанять телепата?

tuz-veta 23-01-2013 12:57 2073060

Цитата:

Цитата K.A.V.
Нанять телепата? »

Все, розобрался!

TranscendFree 24-01-2013 09:04 2073751

Добрый день. Не получается создать ярлык в папке в кнопке "Пуск". При таком пути ничего не создается в меню "Пуск". Версия программы последняя. Версия ОС Windows 7.
http://i076.radikal.ru/1301/d7/32091199ed9a.png
Подскажите что не так.
Разобрался - сначала надо создать папку в кнопке "Пуск"

K.A.V. 24-01-2013 15:26 2073996

Цитата:

Цитата tuz-veta
Все, розобрался! »

Вы не нервничайте, как вопрос задаёте - такой ответ и получаете
А по вашему сообщению "получаю ошибку" вам как ответить?
Куда пишите переменную "$Fonts", после чего ошибка, где ошибка, какой вообще текст ошибки?

Вы ничего не описали...



----------
Сижу тему перечитываю :)
Цитата:

Цитата Limonica
Слушайте люди добрые, а как бороться с перенаправлением в 64 битных системах, для переменной $PROGRAMFILES, $PROGRAMFILES32, $PROGRAMFILES64 всё понятно, а для $SYSDIR O_o
, ведь перенаправляет в SysWOW64 »

На какой ОС вас так перенаправляет? У меня на Win7 x64 показывает в System32 :o
http://img69.imageshack.us/img69/4909/25950313.jpg
Можно же как-то извратиться и получить путь к System32, можем написать какую-любо функцию и создать собственную переменную в SFX Creator, раз на то пошло

Цитата:

Цитата Salmo
Я пока делаю так: Добавляю в пакет батник, который запускаю через %WinDir%\Sysnative\cmd в 64 битной среде с правами Админа, и он уже ковыряется в System32.
Если нужно что-то патчить, а патчи 32 битные, то надо, с помощью того-же батника, скопировать нужные файлы на нейтральную территорию (TEMP), став их владельцем и получив полный доступ, пропатчить и вернуть назад, восстановив владельца и права доступа. Если оригинальные файлы в System32 переписать не удается, чаще всего получается их переименовать и, после перезагрузки, удалить, если необходимо. Так, что CMD еще живо »

Жесть :)

Слушайте люди добрые :)
Вообщем сижу и думаю, как бы сделать, и как будет лучше и так сказать "на века" я пока не уверен...
Вопрос в чем, что будем делать с 64 битными перенаправлениями??
В том смысле, что вот к примеру я добавлю глобальную настройку включения/отключения перенаправления в "Управление проектами", этого будет достаточно??
Просто я в х64 системах не работал и всех тонкостей не знаю...
Вот надумал как пример, импорт в реестр (было недавно от пользователя проблемка), ведь может сложится такая ситуация, когда нужно будет произвести импорт в реестр через REG файл при включенном редиректе и при выключенном, тогда стоит добавить переключатель в диалоги SFX Creator, так сказать первую команду выполнить с включенным перенаправлением, вторую без и т.д., или просто восстанавливать глобальную настройку редиректа после исполнения команды? :)

TranscendFree 24-01-2013 17:29 2074112

Другой вопрос: Проверить установленное ПО.
Если программа которую я собираюсь ставить уже установлена, то можно сделать отмену установки.
Пункт "Ваше решение (Если НЕ успешно)" сделать выборочным - "Успешно" или "Не успешно". Т.е. если файл, папка или ветка реестра уже присутствует, то установка отменяется.

K.A.V. 24-01-2013 18:17 2074148

Цитата:

Цитата TranscendFree
Другой вопрос: Проверить установленное ПО. »

Насчет данной возможности у меня уже есть идеи...В частности, хочу прикрутить такую функцию, как обработка "положительного" результата
К примеру:
1. Возможность менять директорию установки вашей программы при успешном определении ПО
2. Запускать приложение/открывать сайт, если ПО успешно определено

Вообще, это пока всё в теории, т.к. сам код возможности определения ПО у меня огромен и в нём постоянно были ошибки при разработке, поэтому будет чуть позже
К тому же, не думаю, что большой процент пользователей интересует данный функционал, для данных целей (определение ПО и далее обновление уже установленного продукта) используются профессиональные программы для создания пакетов инсталляторов, которой SFX Creator не является, поэтому и все дополнительные "фишки" типа "Определение ПО" дорабатываются в самую последнюю очередь

SFX Creator же простенькая программа для быстрого создания обычных SFX-архивов для неопытных пользователей, не более

А список на новые возможности уже составлен и я работаю по нему в зависимости от наличия свободного времени

TranscendFree 24-01-2013 20:53 2074241

K.A.V., спасибо за развернутый ответ.
p.s. Ваша программа действительно очень удобная и проста в использовании.

Salmo 25-01-2013 09:20 2074552

Цитата:

Цитата K.A.V.
первую команду выполнить с включенным перенаправлением, вторую без и т.д. »

Здравствуйте, именно так , по моему, сделать лучше. Добавить в диалоги команд, где возможен редерект ( операции в реестре, запуск системных утилит, файловые операции и т.д.) галочку: "Выполнить команду с отключением перенаправления на время выполнения ( для х64) " Глобальное отключение может создать проблемы, когда проводятся операции в разных средах (32/64) Лучше знать, что инсталлятор по-умолчанию всегда обращается в 32 бита и только конкретные команды, заданные мной, - в 64.

K.A.V. 26-01-2013 15:40 2075466

Цитата:

Цитата tuz-veta
Это у меня только,на виндовс 7 скины не работают ? »

Цитата:

Цитата K.A.V.
На Windows 7 у меня не работают »

Кому хочется видеть SFX Creator "одетым" в Windows 7 - информация в шапке

TranscendFree 28-01-2013 15:19 2076895

Добрый день.
Создал программу удаления. В том числе она должна удалять из кнопки Пуск папку с ярлыками. Но этого не делает, т.е. удалает к примеру каталоги и файлы из Program Files а из Пуск почему то не может удалить.
ОС Win7 x64, контроль учетных записей отключен.
Заранее спасибо

K.A.V. 28-01-2013 16:26 2076950

Цитата:

Цитата TranscendFree
Создал программу удаления. В том числе она должна удалять из кнопки Пуск папку с ярлыками »

Вы опишите, каким способом создаёте/удаляете папку в меню пуск (через настройку графического интерфейса?), как я могу понять, в каком месте кода искать возможные ошибки

И было бы не плохо, прикреплять файл проекта, так я быстрее смогу разобраться в возникшей проблеме
Если не хотите выкладывать файл проекта на всеобщее обозрение, можете отправлять его в личку или пароль на архив

TranscendFree 28-01-2013 16:50 2076974

K.A.V., сорри.

Вот:
Создание при установке:
Сначала создается папка "Добавить файловую операцию" в $SMPROGRAMS\Программа учёта
Потом там создаются ярлыки "Добавить ярлык" в $SMPROGRAMS\Программа учета\Учет.lnk, $SMPROGRAMS\Программа учета\Удаление.lnk

Удаление:
"Создать программу удаления"
Удаление директории (с подпапками) $SMPROGRAMS\Программа учета\

Вот что прописано в ini:
[Действия деинсталлятора]
...
35=/command=DelFile /File=$SMPROGRAMS\Программа учета\Учет.lnk
36=/command=DelFile /File=$SMPROGRAMS\Программа учета\Удаление.lnk
37=/command=DelFile /File=$DESKTOP\Учет.lnk
38=/command=RMDir /Dir=$SMPROGRAMS\Программа учета\ /subdirdel=1

K.A.V. 28-01-2013 17:34 2077024

TranscendFree, во первых, ошибка с вашей стороны здесь:

Цитата:

Цитата TranscendFree
Сначала создается папка "Добавить файловую операцию" в $SMPROGRAMS\Программа учёта »

Цитата:

Цитата TranscendFree
Удаление директории (с подпапками) $SMPROGRAMS\Программа учета\ »

У вас папка остаётся всё-равно в меню пуск пустая ;)

Во вторых, запустите обновление в SFX Creator, была ошибка при которой деинсталлятор вообще не создавался (вернее создавался, но не отрабатывал при запуске), если отключено подключение графического интерфейса установщика :blush2:

Цитата:

Цитата TranscendFree
35=/command=DelFile /File=$SMPROGRAMS\Программа учета\Учет.lnk
36=/command=DelFile /File=$SMPROGRAMS\Программа учета\Удаление.lnk »

ё-моё, моё упущение, не указал в файле справке нифига... :(

Если вы вручную прописываете создание ярлыков, то они автоматически добавляются для удаления, если вы создаёте программу удаления :)
Поэтому не нужно мучать себя прописыванием каждого ярлыка в "Команды удаления"

TranscendFree 28-01-2013 22:03 2077235

Цитата:

Цитата K.A.V.
Программа учёта »

Прошу прощения, это моя опечатка, действительное название программы другое, название правил руками.
Но не удаляются ни папка ни ярлыки. С рабочего стола удаление происходит, а вот из пуска нет.

K.A.V. 28-01-2013 22:40 2077258

Цитата:

Цитата TranscendFree
Но не удаляются ни папка ни ярлыки »

Цитата:

Цитата K.A.V.
Во вторых, запустите обновление в SFX Creator »

Вы обновились? После обновления данная ошибка устраняется, тестировал в Win7 32/64-bit

TranscendFree 28-01-2013 23:55 2077290

Софт установлен на работе. Ок, отпишусь. Спасибо за помощь!

TranscendFree 29-01-2013 10:54 2077466

Так и не удаляет. Обновил, по новой пересоздал создание ярлыков и дистрибутив.
Создал ярлык не в папке, то же не удаляется.

[ShortCuts]
...
4=CreateShortCut "$SMPROGRAMS\проверка.lnk" "$INSTDIR\Start.exe" "" "" "" "" "" ""
4_de=$SMPROGRAMS\проверка.lnk
4_all=0
...
[Действия деинсталлятора]
36=/command=DelFile /File=$SMPROGRAMS\проверка.lnk

...Сейчас проверю на windows xp
На winXp всё удаляется прекрасно!!!
На win7 артачится

Salmo 29-01-2013 13:04 2077563

TranscendFree, Извините, что вмешиваюсь... Может быть не раскрывается переменная $SMPROGRAMS, как надо. Попробуйте использовать абсолютные пути. У меня семерка игнорирует переменную $%PROGRAMDATA%...

TranscendFree 29-01-2013 13:06 2077568

Вот нашел http://denglad.blogspot.ru/2009/12/nsis.html может быть в этом дело?

Salmo, да не, все нормально с переменной $SMPROGRAMS. Дело именно в win7

Salmo 29-01-2013 13:26 2077595

Цитата:

Цитата TranscendFree
может быть в этом дело? »

Очень похоже, удаляется то, на что есть права. Что юзер ставил, то и может удалить.... попробуйте.

alert30 29-01-2013 13:40 2077609

Когда планируется новая версия, а то автор аттачил много фиксов и патчей.

TranscendFree 29-01-2013 14:02 2077635

Цитата:

Цитата Salmo
попробуйте »

рад бы но как?

Salmo 29-01-2013 14:24 2077660

Цитата:

Цитата TranscendFree
рад бы но как? »

TranscendFree, Попробуйте лично для меня... Если Вы еще не разбомбили Унинсталлер, сделайте вот что: включите UAC и запустите Унинсталлер через контекстное меню правой кнопки мыши от имени Админа, - удалятся ярлыки?

TranscendFree 29-01-2013 14:48 2077689

Цитата:

Цитата Salmo
включите UAC и запустите Унинсталлер через контекстное меню правой кнопки мыши от имени Админа »

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

K.A.V. 29-01-2013 15:46 2077747

Цитата:

Цитата TranscendFree
Вот нашел http://denglad.blogspot.ru/2009/12/nsis.html может быть в этом дело? »

Если дело в этом, то эта настройка может быть установлена в SFX Creator
А точнее "Управление проектами => Необходимые привилегии для установки (Manifest)" установить выпадающий список в "Пользователь"
Попробуйте...
Вот почему у меня не возникает разных неприятных ситуаций при разработке...поэтому причину сложно отыскать, у меня на Win7 32-bit и на виртуалке Win7 64-bit всё корректно удаляет, и ярлыки и саму директорию из меню Пуск

Цитата:

Цитата TranscendFree
делал, но с отключенным UAC »

Так...А вы запускаете инсталлер под обычным пользователем или под админом? Я то под админом всё тестирую...Если у вас проблемы под обычным пользователем, то создам себе пользователя и проведу тесты. Жду ответа

Цитата:

Цитата alert30
Когда планируется новая версия, а то автор аттачил много фиксов и патчей. »

Не знаю, честно...Пишу по-тихоньку :)
Сам если честно, уже начинаю путаться в патчах :biggrin:
Новая версия будет чуток удобнее, хотя бы потому, что исчезнет проблема, когда в системе установлено значение DPI выше стандартного (на страничке "что ожидается в новой версии" уже писал)

TranscendFree 29-01-2013 16:06 2077762

Цитата:

Цитата K.A.V.
"Управление проектами => Необходимые привилегии для установки (Manifest)" установить выпадающий список в "Пользователь" »

Пробовал не дает удалить с ярлыка.
Цитата:

Цитата K.A.V.
А вы запускаете инсталлер под обычным пользователем или под админом? »

Пользователь с правами администратора в домене.

K.A.V. 30-01-2013 19:13 2078744

хм, тогда не знаю :(
В самом SFX Creator проблем нет, т.к. программа лишь создаёт инсталлер с помощью NSIS, а дальше уже он работает...

Попробуйте добавить команду на запись в INI файл значения переменной, переменная то правильно определяется?
Перед компиляцией проекта добавьте строчку в функцию un.UnInstallFunction

Код:

WriteINISTr "$DESKTOP\TEST.ini" "TEST" "Var_$$SMPROGRAMS" "$SMPROGRAMS"
Например:
Код:

Function un.UnInstallFunction
WriteINISTr "$DESKTOP\TEST.ini" "TEST" "Var_$$SMPROGRAMS" "$SMPROGRAMS"
 Delete "$SMPROGRAMS\Программа учета\Учет.lnk"
 Delete "$QUICKLAUNCH\Мой ярлык.lnk"
 Delete "$INSTDIR\uninst.exe"
 RMDir /r `$SMPROGRAMS\Программа учёта`
  SetAutoClose true
quit
FunctionEnd

После удаления откройте на рабочем столе файл TEST.ini и посмотрите, куда ведёт у вас переменная $SMPROGRAMS

TranscendFree 31-01-2013 09:10 2079087

K.A.V., если добавлять данную строчку в Source.nsi, то перед компиляцией проекта, этот файл сам пересохраняется (кнопку Сохранить я не нажимаю), и эта строка удаляется компилятором автоматически.
Секции Function un.UnInstallFunction в Source.nsi нет. Есть вот что (точки - код):

Function WriteUnInstallFunction
CreateDirectory "$INSTDIR"
WriteUninstaller "$INSTDIR\uninst.exe"
.
.
.

Functionend
Function un.onUninstSuccess
HideWindow
.
.
.
FunctionEnd
Function un.onInit
.
.
.
Section UnInstall
.
.
.


чуть позже...
поставил на этот файл атрибут - только чтение
получилось, вот итог:
[TEST]
Var_$SMPROGRAMS=C:\Users\cvlad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

K.A.V. 31-01-2013 09:39 2079102

Цитата:

Цитата TranscendFree
K.A.V., если добавлять данную строчку в Source.nsi, то перед компиляцией проекта, этот файл сам пересохраняется »

Добавляете строку и НЕ запускаете компиляцию через SFX Creator, а запускаете на исполнение этот файл:
Код:

\NSIS\Compile.bat
Цитата:

Цитата TranscendFree
Секции Function un.UnInstallFunction в Source.nsi нет »

Она присутствует в том случае, если вы создаёте SFX без графического интерфейса, в вашем же случае (с графическим интерфейсом) нужно добавлять команду в секцию UnInstall

TranscendFree 31-01-2013 09:46 2079112

поставил на этот файл атрибут - только чтение
получилось, вот итог:
[TEST]
Var_$SMPROGRAMS=C:\Users\cvlad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

TranscendFree 31-01-2013 11:26 2079196

Проблема решилась добавлением в начало секций Section -Install и Section UnInstall строки SetShellVarContext all. Удалилось всё как надо в windows 7.
На winXP немного по другому. Позже отпишу

Salmo 31-01-2013 13:17 2079290

Цитата:

Цитата TranscendFree
SetShellVarContext all »

http://kalanir.blogspot.ru/2011/08/n...installer.html
Тут объяснение
http://nsis.sourceforge.net/Shortcut..._Windows_Vista

K.A.V. 06-02-2013 16:04 2083762

Всем привет!
Ещё один вопрос появился в процессе разработки функции x64-редиректа, решил чуток расширить работу с x64 ОС

Собственно, дело в чем, вот сижу и думаю...Есть у нас диалог "Добавить выполнение приложения" и, решил сделать такую возможность, как запуск EXE в зависимости от разрядности, скажем, делаем мульти-установку для 32 и 64 бита и в зависимости от битности ОС запускаем нужный EXE

Вопрос в чем, как лучше сделать:
Способ №1
читать дальше »

Я могу добавить галочку, при отметке которой, в скрипте при компиляции будет продублирована команда на запуск указанного файла И если ОС 64-bit, то в команду к имени запускаемого файла просто будет добавлена приставка _x64
Чтобы нагляднее объяснить, вот пример. Добавляем в проект запуск EXE файла:
Код:

$TEMP\TEST.exe
Ставим заветную галочку, и при компиляции в скрипте вашего инсталлера будет создана такая логическая конструкция:

Код:

Если 64 бит ОС
запуск $TEMP\TEST_x64.exe
иначе (если 32 бит)
запуск $TEMP\TEST.exe




Способ №2
читать дальше »

Добавляется галочка, при отметке которой указанное вами приложение будет запускаться только на 64 бит ОС
С одной стороны, так удобнее, с другой - не совсем, т.к. первый вариант более гибок при создании архива для разных разрядностей ОС


Как быть? :)

Salmo 06-02-2013 16:49 2083793

Цитата:

Цитата K.A.V.
Как быть? »

Добрый день... А может сделать все наизнанку :) Многие ЕХЕ_шники, которые помещаю в пакет, запускаю независимо от битности системы. Поэтому, по-умолчанию, можно оставить так: добавлена команда на запуск ЕХЕ, значит пуск осуществляется в системе любой битности. А вот, если нужно исключить запуск в системе определенной битности, то это и отметить. Т.е., рядом поместить два чекбокса: "Запустить только в системе ... (32);(64)" Оба отмечены. Неудобно? :)

dashkakosa 08-02-2013 04:41 2085041

Вложений: 1
подскажите как на win 7 64 правильно установить прогу? установочное окно урезанное и непонятно как принять лицензию и продолжить((
и подскажите прошу еще как с помощью этой програмульки слить 2 установщика , чтобы первый устанавливался обычно, а второй по тихому?

K.A.V. 08-02-2013 05:35 2085048

Цитата:

Цитата Salmo
А вот, если нужно исключить запуск в системе определенной битности, то это и отметить. Т.е., рядом поместить два чекбокса: "Запустить только в системе ... (32);(64)" Оба отмечены. Неудобно? »

хм, может и так...не знаю, посмотрю тогда как лучше сделать :)

Цитата:

Цитата dashkakosa
подскажите как на win 7 64 правильно установить прогу? установочное окно урезанное и непонятно как принять лицензию и продолжить(( »

Это у вас увеличенные шрифты в системе (Персонализация => Экран), из-за этого проблемы, в следующей версии с этим проблемы будут полностью устранены

Цитата:

Цитата dashkakosa
и подскажите прошу еще как с помощью этой програмульки слить 2 установщика , чтобы первый устанавливался обычно, а второй по тихому? »

Первый вам нужно создать с "Графическим интерфейсом", меню SFX Creator => Настройка графического интерфейса
А второй создавайте без графического интерфейса, процесс распаковкий файлов будет скрытый
А так, прочтите файл справки, там есть описание настроек и диалогов программы

K.A.V. 09-02-2013 16:25 2086361

Сидел делал сегодня возможность создавать контрольную точку восстановления системы (с помощью плагина SysRestore plug-in), но почему-то на Windows XP он отказался создавать контрольную точку :(
На Windows 7 было всё прекрасно, поэтому решил, что смысла добавлять этот плагин в функционал SFX Creator нет

Завтра скорее всего будет версия 2.7, что-то так смотрю, никаких существенных изменений нет, разве что настройка редиректа и устранение проблем с увеличенным DPI в системе :)

K.A.V. 10-02-2013 08:44 2086861

SFX Creator 2.7

[+] DPI Fix: при превышении DPI настройки в системе, SFX Creator отключает масштабирование элементов и позволяет управлять границами окон в своих диалогах
[+] Возможность остановить процесс компиляции в окне лога компиляции

[+] Возможность кеширования всех типов файлов
[+] Добавлена возможность отключать редирект в x64 системах

[+] Диалог "Добавить выполнение приложения" => Возможность запускать приложения в зависимости от разрядности ОС
[+] Диалог "Установить пароль на архив" => Скрыть пароль при вводе
[+] Настройка SFX Creator => Управлять границами окон
[*] Теперь не нужно нажимать в главном окне SFX Creator кнопку "Сохранить" для сохранения данных в группе "Главные настройки", всё сохраняется автоматически[*] Исправлена неработоспособность "Самоудаления" методом "DLL" в ОС начиная от Windows Vista (спасибо "Limonica")
[+] Сохранение уровня прозрачности FastAdd панели

Дэмиен 10-02-2013 09:43 2086880

K.A.V., :clapping: СПАСИБО за новую версию, испробуем! :yahoo:

Salmo 10-02-2013 17:38 2087162

K.A.V., Спасибо за труд! Обновился автоматом. Нужно время, чтобы ознакомиться с новыми функциями, но пока нет никаких проектов, требующих отключения перенаправления... А как будет решаться задача отключения перенаправления в реестре?

И еще вопрос: отключение перенаправления затрагивает только процессы инсталлятора или все процессы системы и когда эта настройка перестает действовать и восстанавливается функция перенаправления, если выбраны настройки "отключить х64 редирект" и "восстанавливать глобальную настройку после каждой команды" ?

K.A.V. 10-02-2013 22:56 2087457

Цитата:

Цитата Salmo
А как будет решаться задача отключения перенаправления в реестре? »

Позже решим этот вопрос добавлением команды SetRegView (можете прочитать о ней в Справочнике по NSIS)
Просто времени уже прилично прошло с момента выхода версии 2.6, поэтому решил выложить то, что уже наработал
А функционал с перенаправлением реестра думаю опять же, малому количеству пользователей нужен, поэтому сделаем чуть позже :)

Цитата:

Цитата Salmo
отключение перенаправления затрагивает только процессы инсталлятора или все процессы системы »

Все процессы системы было бы жирновато, не находите? ;)
Настройка действует только в пределах инсталлятора, а как насчет дочерних процессов, запускаемых инсталлером, насчет этого ничего не скажу, т.к. не тестил

Цитата:

Цитата Salmo
и когда эта настройка перестает действовать и восстанавливается функция перенаправления, если выбраны настройки "отключить х64 редирект" и "восстанавливать глобальную настройку после каждой команды" ? »

В справке к SFX Creator же написано, то, что вы выбираете в диалоге настройки редиректа включить/отключить, то и устанавливается при запуске вашего инсталлятора
И настройка перенаправления (глобальная настройка) будет действовать до тех пор, пока какая-либо команда в скрипте не установит свою настройку (например вы можете изменить настройку редиректа при распаковке ваших файлов, для каждой записи отдельно)
читать дальше »
Кстати говоря, версия 2.7 может установить настройку редиректа перед исполнением любой доступной команды в SFX Creator, только вот этот переключатель перенаправления в диалогах программы просто не существует, т.к. честно признаться, было лень лопатить все диалоги, т.к. особой ценности в данном функционале я, по крайней мере сейчас, не вижу
Но если кому интересно, могу рассказать, как можно изменить настройку редиректа перед исполнением какой-либо команды в скрипте


"восстанавливать глобальную настройку после каждой команды"
Опять же, в справке описано...Если отметить, то после каждой команды в скрипте (создание ярлыка, выполнение приложения, операции в реестре, операции с файлами и т.д.) будет установлена та настройка редиректа, которую вы выбрали как глобальную настройку при запуске инсталлятора

Salmo 11-02-2013 13:34 2087809

K.A.V., Спасибо за ответы... Логику работы отключения перенапроавления Вашей программы я понял сразу и читать справку перед работой в моих правилах :) Мои вопросы обусловлены вот чем: Если отключение перенаправления распространяется на другие процессы системы и дочерние процессы инсталлятора - это важный фактор, который необходимо учитывать. Если после отключения перенаправления, какой-либо 32 битный процесс обратится к своей библиотеке, которая находится в SYSWoW64 и куда ОС должна перенаправить вызов, то произойдет попытка загрузки 64 битной библиотеки из System32 (этот путь прописан жестко в 32 битных приложениях), что приведет к краху приложения. А так как глобальная настройка действует длительное время (установка может длится минуты), то вероятность этого велика. Поэтому я и предлагал этот вариант:
Цитата:

Цитата K.A.V.
переключатель перенаправления в диалогах программы просто не существует, т.к. честно признаться, было лень лопатить все диалоги, т.к. особой ценности в данном функционале я, по крайней мере сейчас, не вижу »

и после каждого отключения перенаправления немедленно его восстанавливать...
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

K.A.V. 11-02-2013 14:02 2087823

Цитата:

Цитата Salmo
Если отключение перенаправления распространяется на другие процессы системы и дочерние процессы инсталлятора »

Из вашей же ссылки, читайте:
Цитата:

Disabling file system redirection affects all file operations performed by the calling thread
Т.е. настройка редиректа действует в пределах одного потока (процесса), насчет дочерних процессов не знаю, но на все процессы в системе данная настройка не влияет
"глобальная" я имел ввиду в пределах скрипта инсталлятора, она же устанавливается в момент запуска и на неё же можно "сбрасывать" после исполнения команд в скрипте

Salmo 11-02-2013 14:43 2087873

Цитата:

Цитата K.A.V.
действует в пределах одного потока »

Да, да, я сделал более широкое допущение упомянув все процессы, но для нашей ситуации (внутри потока) эта рекомендация полезна? Имеет ли практический смысл учитывать ее? Вам, как разработчику, виднее... я же только делюсь информацией :)
"...so it should be disabled only when necessary for a single CreateFile call and re-enabled again immediately after the function returns. Disabling file system redirection for longer periods can prevent 32-bit applications from loading system DLLs, causing the applications to fail."

K.A.V. 11-02-2013 14:57 2087890

Цитата:

Цитата Salmo
но для нашей ситуации (внутри потока) эта рекомендация полезна? »

Сам не знаю, поэтому отвечать не буду :)
Если даже и полезна, то у SFX Creator есть для этого настройка "Восстанавливать глобальную настройку редиректа после каждой команды", т.е. если боимся, делаем так:
Включаем настройку редиректа в положение "Включить x64 редирект", и отдельно прописываем отключение редиректа перед исполнением приложений или команд, в коде будет так:

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

Salmo 11-02-2013 15:38 2087944

Цитата:

Цитата K.A.V.
Включаем настройку редиректа в положение "Включить x64 редирект", и отдельно прописываем отключение редиректа перед исполнением приложений или команд, в коде будет так: »

Да, этот вариант я вижу, - это хорошо, но я недаром описал ситуацию раньше, когда сделан выбор "отключить х64 редирект" и "восстанавливать глобальную настройку после каждой команды". Если, по какой-либо причине, пользователель выберет этот вариант, а его скрипт, по ходу установки, запускает еще и 32 битное приложение с подгрузкой библиотеки, что он не учел, то будет крах... К чему вся эта писанина? К тому, что использовать функцию отключения перенаправления без проблем сможет, только, осведомленный пользователь. А, так как, Вы позиционировали свою программу, как "конструктор" для широкого круга потребителей (что очень ценно), я и обратил на это внимание и "достаю" :) Вас... Я думаю, что Вы заинтересованы в том, чтобы неопытные пользователи избегали подводных камней... Я же уже давно использую х64.nsh, а чаще, более безопасный способ, через псевдоним Sysnative, если это уместно...

K.A.V. 12-02-2013 10:19 2088502

Цитата:

Цитата Salmo
К чему вся эта писанина? К тому, что использовать функцию отключения перенаправления без проблем сможет, только, осведомленный пользователь. »

Мне кажется, что если пользователь уже знает вообще что такое x64 редирект, то он интуитивно должен все эти моменты прокрутить у себя в голове
Спросите у рядового пользователя, хотя бы у того, кто может сам просто переустановить Windows и установить какое-либо ПО, в чем различия 32-битной ОС от 64-битной, вам в ответ скажут только одно - в 64-bit можно больше памяти использовать, на этом все преимущества перед 32-битной ОС у рядовых пользователей заканчиваются, они даже и предположить не могли, что в 64-битной ОС есть такие тонкости как редирект...

Цитата:

Цитата Salmo
Я думаю, что Вы заинтересованы в том, чтобы неопытные пользователи избегали подводных камней... »

Заинтересован, НО если пользователь берётся создавать перепаковщики программ, то он уже должен иметь достаточный опыт в работе с ПО
Тем более в наше время, проблем с тестом на разных ОС нет никаких проблем...Поставил на виртуальную машину разные выпуски и сидишь тестируешь, что не работае -проверяешь
А у нас принято делать на "да должно работать", склепают кривые инсталляторы и другие потом срадают

Salmo 12-02-2013 22:37 2089083

K.A.V., Сдаюсь!!! :flag:

Fan007 26-02-2013 13:04 2099232

K.A.V., Приветствую! Имеется вопросик по поводу работы с архивами созданными через 7-ZIP.

Создаю 3 архива по 1.5гб :
Код:

data\
sfxcreator_data.7z.001
sfxcreator_data.7z.002
sfxcreator_data.7z.003

Но при компилировании все равно выдает ошибку об слишком большом архиве.
Я так понял даже этот режим сжатия не может обойти порог в 2Гб или я что то упускаю?

K.A.V. 26-02-2013 15:23 2099369

Fan007, здравствуйте
Цитата:

Цитата Fan007
Но при компилировании все равно выдает ошибку об слишком большом архиве. »

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

---
Только что произвёл упаковку данных с помощью 7-Zip общим размером в 6,68 ГБ, указав разбивку на тома по 2 Гб, на выходе получилось 3 файла по 2 Гб и один 702 Мб
Никаких проблем при упаковке или распаковке данных не возникло

Ждём подробное описание ошибки

Limonica 28-02-2013 17:53 2101239

KAV сделайте портабл версию программы, например чтоб вместо полных путей брались относительные, в зависимости от в какой папке находится:

Цитата:

*\Папка\1.ico

K.A.V. 28-02-2013 18:14 2101261

Цитата:

Цитата Limonica
например чтоб вместо полных путей брались относительные »

Относительно чего?
Хотите хранить файлы всех проектов в подпапке с SFX Creator? Правильно мысль улавливаю?

Limonica 06-03-2013 19:21 2105694

абсолютно верно!

Salmo 20-03-2013 16:03 2115014

K.A.V., Добрый день! Только сейчас заметил, что в исходнике отсутствует сообщение о необходимости войти в систему с правами Админа...

Function GetAccountType
UserInfo::GetAccountType
Pop $1
StrCmp $1 "Admin" okAccountType 0
quit
okAccountType:
FunctionEnd

K.A.V. 20-03-2013 18:55 2115108

Цитата:

Цитата Salmo
K.A.V., Добрый день! Только сейчас заметил, что в исходнике отсутствует сообщение о необходимости войти в систему с правами Админа... »

Привет :)
Там над галочкой "Требовать права администратора" есть выпадающий список, где выбирается тип иконки, которая будет в сообщении, установи тип иконки
Оказалось, что если пользователь не ставит выбор в этом выпадающем списке (параметр не прописывается в файл проекта), то сообщение не прописывается в скрипт

Это впринципе не критично, поэтому исправлю это позже :blush2:

Smith_Wesson 21-03-2013 16:09 2115670

Всем доброго времени! Уважаемый K.A.V., подскажите почему у меня отрабатывает запуск файлов *.vbs..?
Прописываю в ini-файле так:
Цитата:

[Выполнить]
1=C:\WINDOWS\system32\cscript.exe C:\ftp_.vbs
2_hide=1
Но, ни чего не происходит... С запуском *.bat-файлов проблем нет. Отдельно, ftp_.vbs - отрабатывает, на ура. Не, пойму - в чем причина....(((

K.A.V. 21-03-2013 16:24 2115677

Smith_Wesson, здравствуйте
Попробуйте прописать путь к vbs файлу как параметр к исполняемому приложению, а не всё в одну строку...
Пример

Цитата:

Цитата Smith_Wesson
Отдельно, ftp_.vbs - отрабатывает, на ура »

Я со скриптами не работаю, но вы уверены, что нужно прописывать именно cscript.exe, а не wscript.exe?

Ещё в догонку, попробуйте указать исполнение скрипта как Shell-запуск (но только в команду пишите только путь к VBS файлу)
Пример

Дэмиен 21-03-2013 22:56 2115898

У меня за запуск "*.vbs" отвечает "WScript.exe"! Хотя "cscript.exe" вроде делает практически то же самое, просто в консольном режиме! Точно не знаю, с VBScript'ами не работаю, так что могу и ошибаться!...))

Smith_Wesson,
Попробуйте так, должно сработать!:
Цитата:

[Выполнить]
1=C:\WINDOWS\system32\cscript.exe
1_CLine=C:\ftp_.vbs
1_hide=1

Smith_Wesson 22-03-2013 18:29 2116453

Спасибо за помощь! Все получилось! Действительно, путь к vbs файлу нужно прописывать как параметр к исполняемому приложению, а не всё в одну строку...

Цитата:

Цитата Дэмиен
У меня за запуск "*.vbs" отвечает "WScript.exe"! Хотя "cscript.exe" вроде делает практически то же самое, просто в консольном режиме! »

Совершенно верно! "cscript.exe" работает практически идентично "wscript.exe" (логика та же), но если не требуется интерактивного участия пользователя, лучше использовать все таки "cscript.exe".
Т.к. в некоторых случаях, при обработке определенного кода в сценария в "wscript.exe" могут возникать ошибки. (почитайте доки по WHS)

BloodZIK 02-04-2013 01:41 2124016

Вложений: 1
Были ли проблема у кого, что установка началась, а прогресс бар даже не начинал движения, он через некоторое время просто заканчивал установку, т.е. проблема в прогресс баре, то, что он вообще ни как не двигается
http://forum.oszone.net/attachment.p...1&d=1364852437
------
Выяснил, что она не работает при методе сжатия 7z

erema15 15-04-2013 21:29 2133282

Вложений: 2
Всем доброго здравия!

Существует ли у кого-нибудь такие проблемы?

Проблема 1
Если делаю несколько компонентов и у каждого из них есть по ссылке, то при компиляции SFX Creator начинает бесконечно писать в Source.nsi. Если ссылка только у одного компонента, то компилируется успешно.

Проблема 2
Если в компоненте несколько файлов, то SFX Creator неправильно пишет Source.nsi: после каждого файла(ярлыка, ключа реестра) добавляет SectionEnd

Прикрепляю необходимые файлы.

p.s. SFX Creator начал использовать только сейчас, поэтому извините, если что :sorry:

K.A.V. 15-04-2013 22:00 2133306

Цитата:

Цитата BloodZIK
Были ли проблема у кого, что установка началась, а прогресс бар даже не начинал движения, он через некоторое время просто заканчивал установку, т.е. проблема в прогресс баре, то, что он вообще ни как не двигается »

Статус прогресс-бара обновляется после распаковки файла

Цитата:

Цитата BloodZIK
Выяснил, что она не работает при методе сжатия 7z »

И не должен работать, т.к. распаковку из 7-zip архивов выполняет внешнее приложение 7z архиватора, и отследить прогресс в таком случае лично я не могу, да и не вникал особо в это дело
Если вы создаёте 7z архивы, то подключайте графический интерфейс, тогда при распаковке архивов увидите прогресс

Цитата:

Цитата erema15
Всем доброго здравия!
Существует ли у кого-нибудь такие проблемы? »

У тех, кто использует последнюю версию SFX Creator - такой проблемы нет

Данные из ваших логов:
Цитата:

[ NSIS Source Code Creator ]

SFXCreator.exe [ 2.6.0.0 ]
ccode.exe [ 2.6.0.0 ]
MUI.exe [ 2.6.0.0 ]
Обновитесь до актуальной версии SFX Creator. Последняя версия - 2.7

erema15 15-04-2013 23:13 2133366

Цитата:

Цитата K.A.V.
Цитата erema15:
Всем доброго здравия!
Существует ли у кого-нибудь такие проблемы? »
У тех, кто использует последнюю версию SFX Creator - такой проблемы нет
Данные из ваших логов:
Цитата:
[ NSIS Source Code Creator ]
SFXCreator.exe [ 2.6.0.0 ]
ccode.exe [ 2.6.0.0 ]
MUI.exe [ 2.6.0.0 ]
Обновитесь до актуальной версии SFX Creator. Последняя версия - 2.7 »

Дико извиняюсь. Не обратил внимания, что не тот дистр установил.

p.s. Кстати, на Вашем сайте не рабочая ссылка http://winxpregp.narod.ru/sfxcreator...eatorSetup.exe

K.A.V. 16-04-2013 09:48 2133518

Цитата:

Цитата erema15
p.s. Кстати, на Вашем сайте не рабочая ссылка http://winxpregp.narod.ru/sfxcreator...eatorSetup.exe »

Спасибо за отзыв. После переезда "народа" на ucoz файл буквально "испарился" с сайта, понять причины не могу :o
Перезалил.

А вообще, если есть проблемы с доступом к оф. страничке SFX Creator, то последнюю версию всегда можно скачать в этой теме из шапки (архив SFXCreatorSetup.rar)

erema15 16-04-2013 19:55 2133939

Обновился до 2.7 и все проблемы, которые описывал выше решились. Спасибо!

Но есть ещё одна. Файлы забыл на работе, но смысл в следующем.
Много компонентов и в каждом исполняемый файл, документ и ярлык на исполняемый файл. Так вот, если указываю делать ярлык в папку на раб.столе, то проект компилится, а при установке ярлык не создаётся (при этом успел заметить в логе установщика что-то наподобие "Ошибка создания ярлыка"). Если ярлык создавать просто на раб. стол, то всё нормально.
Т.е. $DESCKTOP\папка\мой ярлык.lnk - не работает, а $DESCKTOP\мой ярлык.lnk

чяднт? Если для решения проблемы нужны файлы, то завтра вечером их перешлю.

K.A.V. 16-04-2013 20:54 2133990

Цитата:

Цитата erema15
Т.е. $DESCKTOP\папка\мой ярлык.lnk - не работает, а $DESCKTOP\мой ярлык.lnk »

$DESKTOP ;)

У меня работает. Сообщите операционную систему и разрядность.
Пробовали при добавлении ярлыка ставить галочку "Создать ярлык для всех пользователей"?
Попробуйте также прописать сначала создание директории (хотя она автоматически создаётся, если папки нет, но мало ли :))

erema15 16-04-2013 21:55 2134039

Цитата:

Цитата K.A.V.
$DESKTOP

ну да.. ну да ))
Цитата:

Цитата K.A.V.
У меня работает. Сообщите операционную систему и разрядность. »

windows xp sp3 x32
Цитата:

Цитата K.A.V.
Пробовали при добавлении ярлыка ставить галочку "Создать ярлык для всех пользователей"? »

это пробовал
Цитата:

Цитата K.A.V.
Попробуйте также прописать сначала создание директории (хотя она автоматически создаётся, если папки нет, но мало ли ) »

и это тоже


У меня в черновике сохранился кусок из ini
Код:

1=CreateShortCut "$DESKTOP\тест\АРМ Администратора.lnk" "$INSTDIR\Bin\Admin.exe" "" "" "" "" "" "АРМ Администратора БД"
1_de=$DESKTOP\тест\АРМ Администратора.lnk
1_all=1
2=CreateShortCut "$DESKTOP\тест\Руководства оператора\Руководство оператора (АРМ Администратора).lnk" "$INSTDIR\Руководства оператора\Руководство оператора (АРМ Администратора).doc" "" "" "" "" "" "Руководство оператора (АРМ Администратора)"
2_de=$DESKTOP\тест\Руководства оператора\Руководство оператора (АРМ Администратора).lnk
2_all=1

p.s. сейчас в вируталке попробую воспроизвести ситуацию

erema15 16-04-2013 23:35 2134108

Вложений: 1
Вот воспроизвёл этот случай, в упрощённом варианте
Сейчас делал в Windows XP x64

K.A.V. 17-04-2013 10:38 2134305

Цитата:

Цитата K.A.V.
Попробуйте также прописать сначала создание директории (хотя она автоматически создаётся, если папки нет, но мало ли ) »

Цитата:

Цитата erema15
и это тоже »

Ну не пробовали же! У меня тоже не создаются ярлыки, если до команды создания ярлыков нет той директории, где вы хотите создать ярлык

В данный момент не создаются ярлыки при галочке "для всех пользователей", при условии, что выбран более глубокий каталог, чем, например $DESKTOP (т.е. на рабочем столе то создаётся, а если прописывать +каталог после рабочего стола - то не создаётся), и это логично, папки то, нет...

Создаёте к примеру 1 дополнительный компонент выше 2-х уже существующих и поместите туда команду на создание директории "$DESKTOP\тест", сделайте компонент скрытым, чтобы он не показывался пользователю
И уберите галочки с ярлыков "создать для всех пользователей", ярлыки создадутся

Возможно, нужно и поправить в SFX Creator тот момент, чтобы автоматически прописывалась команда на создание директории перед созданием ярлыка, но я не стал это делать по 1-ой причине - SFX Creator по сути не прописывает то, что "ему не говорили"

erema15 17-04-2013 19:29 2134631

Пробовал, но только по-другому.
Я добавлял файловую операцию, которая была вне компонентов и папка на раб.столе создавалась. Но дело в том, что папка создавалась на десктопе текущего пользователя (почему-то только сейчас до этого додумался). Сейчас ещё поэкспериментирую.
Неплохо было бы задействовать переменные среды типа %ALLUSERSPROFILE% или добавить соответствующие переменные в SFX Creator.

Ещё один момент.

"Старт меню" не сильный помощник, когда установка с выбором компонентов. А было бы неплохо как-то это увязать между собой.

erema15 17-04-2013 20:03 2134665

Вложений: 1
Сделал по Вашему совету, но всё ровно не создаются ярлыки. Пробовал с включенным и выключенным порядком операций.
Если папку заранее создать, то всё нормально.

erema15 17-04-2013 20:04 2134666

т.е. получается, что папка создаётся после попытки создания ярлыков.

K.A.V. 17-04-2013 21:20 2134700

Вложений: 1
Цитата:

Цитата erema15
Я добавлял файловую операцию, которая была вне компонентов и папка на раб.столе создавалась. Но дело в том, что папка создавалась на десктопе текущего пользователя (почему-то только сейчас до этого додумался). »

Переключатель "для всех пользователей" доступен только при создании ярлыков

Цитата:

Цитата erema15
Неплохо было бы задействовать переменные среды типа %ALLUSERSPROFILE% или добавить соответствующие переменные в SFX Creator. »

Неплохо было бы заглянуть в файл справки SFX Creator

Цитата:

Цитата erema15
"Старт меню" не сильный помощник, когда установка с выбором компонентов. А было бы неплохо как-то это увязать между собой. »

Не сильный помощник в чем? Этот диалог создан для базовых ярлыков к приложению и данную функцию он вроде бы выполняет нормально

Цитата:

Цитата erema15
Сделал по Вашему совету, но всё ровно не создаются ярлыки.»

Цитата:

Цитата erema15
т.е. получается, что папка создаётся после попытки создания ярлыков. »

Я вам что, просто так описывал алгоритм, который нужно построить в проекте в вашем случае?

Цитата:

Цитата K.A.V.
Создаёте к примеру 1 дополнительный компонент выше 2-х уже существующих и поместите туда команду на создание директории "$DESKTOP\тест", сделайте компонент скрытым, чтобы он не показывался пользователю »

А вы видимо, просто добавили компонент, который ниже уже существующих и поместили команду на создание папки туда...соответственно, она и отрабатывать будет последней...
Можно даже проще, добавить 2 одинаковые команды на создание папки "$DESKTOP\тест" и раскидать по компонентам, в компонентах в свою очередь поместить команду на создание директории выше команд создания ярлыков


Цитата:

Цитата erema15
Пробовал с включенным и выключенным порядком операций. »

Цитата:

Цитата Справка SFX Creator => Порядок выполнения команд
Примечание. Учтите, что данная возможность не имеет силы при условии, что вы влючили отображение Компонентов при подключенном графическом интерфейсе.
Все отнесённые вами команды в Компоненты автоматически игнорируются, если у вас останутся команды, не отнесённые в компоненты, то они будут расположены в том порядке, в котором указаны в данном диалоге "Порядка выполнения команд"

Это сработает только при создании ярлыков для текущего пользователя, т.к. я выше уже говорил
Цитата:

Переключатель "для всех пользователей" доступен только при создании ярлыков
----

Если хотите создать папку для всех пользователей, то добавьте исполнение своей функции NSIS
читать дальше »

1. Распаковываете файл из архива в папку "\NSIS\Include\custom"
2. Дополнительные возможности => Выполнить собственные функции
3. Из выпадающего списка выбираете "MyFunc.nsh"
4. Имя функции - MyFuncEx
5. В распакованном файле "MyFunc.nsh" поправьте путь к папке


В следующем обновлении упростим функцию создания ярлыков, слишком муторно получается :teeth:

erema15 18-04-2013 01:25 2134822

Цитата:

Цитата K.A.V.
Неплохо было бы заглянуть в файл справки SFX Creator »

Цитата:

Как использовать переменные среды ОС Показать »
Если бы не сказали, то и не заметил :)
Цитата:

Не сильный помощник в чем? Этот диалог создан для базовых ярлыков к приложению и данную функцию он вроде бы выполняет нормально
так я какбе намекал )) если, конечно, будут ещё релизы
Цитата:

А вы видимо, просто добавили компонент, который ниже уже существующих и поместили команду на создание папки туда...соответственно, она и отрабатывать будет последней...
Можно даже проще, добавить 2 одинаковые команды на создание папки "$DESKTOP\тест" и раскидать по компонентам, в компонентах в свою очередь поместить команду на создание директории выше команд создания ярлыков
всё было проще. я создал скрытый компонент выше всех, но забыл добавить в него файловую операцию :sorry:

Цитата:

В следующем обновлении упростим функцию создания ярлыков, слишком муторно получается
заодно, если это возможно, нужно чтобы при изменении размера окна "Выбор компонентов" также увеличивались области для выбора команд и т.д. А то иногда наугад приходится добавлять файл или ярлык, если путь длинный.

За подсказку и функцию спасибо [~]7

K.A.V. 18-04-2013 15:57 2135145

Цитата:

Цитата erema15
так я какбе намекал )) если, конечно, будут ещё релизы »

Это еденичный случай, и пытаться подстроить SFX Creator под каждого пользователя - глупо
Для персонализации проектов я добавил возможность исполнения своих функций NSIS - сделать можно много чего

Цитата:

Цитата erema15
заодно, если это возможно, нужно чтобы при изменении размера окна "Выбор компонентов" также увеличивались области для выбора команд »

Пока нет возможности это реализовать


----
Цитата:

Цитата K.A.V.
В следующем обновлении упростим функцию создания ярлыков »

Вышло обновление файла ccode.exe
Данное обновление полностью устраняет проблему создания ярлыков. Теперь, перед каждой командой на создание ярлыка SFX Creator будет прописывать команду создания директории, в которой вы прописали создание ярлыка. Так же данное обновление исправляет проблемы при создании ярлыков "для всех пользователей".
Это обновление затрагивает лишь те моменты в ваших проектах, где при создании ярлыков была увеличена вложенность каталога с ярлыком (пример "$DESKTOP\1 каталог\2 каталог\3 каталог\мой ярлык.lnk")

Обновляться либо через встроенное в SFX Creator средство автоматического обновления, либо качаем ZIP архив из шапки темы 12_ccode_ShortCutsFixUpdate

lioncub 22-04-2013 07:47 2137396

Как добавить название заголовка окна (прогресс бара) во время распаковки файлов?

Дэмиен 22-04-2013 09:22 2137417

lioncub, Нажми зеленый крестик в верхнем левом углу -> Настройка 'Прогресса распаковки файлов'... В поле "Текст в заголовке баннера" и вписываешь свой заголовок!

Super285 22-04-2013 17:36 2137710

Здравствуйте K.A.V! есть видео для новичков как с ним работать SFX Creator 2.7? по справке что-то у меня не получается не могу понять=( заранее спасибо

K.A.V. 25-04-2013 10:06 2139239

Цитата:

Цитата Super285
Здравствуйте K.A.V! есть видео для новичков как с ним работать SFX Creator 2.7? по справке что-то у меня не получается не могу понять=( заранее спасибо »

Здравствуйте
Нет, обучающего видео нет...это же не такое огромное ПО как Photoshop, да и вроде бы ничего сложного в SFX Creator я не делал, по крайней мере делаю так, чтобы было понятно именно начинающим в деле перепаковки

А что конкретно вы не понимаете? Вы скажите...
У меня была идея создать отдельный раздел в файле справке aka "Создаём необходимый SFX или инсталлятор", но пока на реализацию этой идеи нет времени, опять же повторюсь, что сам по себе SFX Creator - простенькая программа с простым интерфейсом (где-то конечно и неудобным) и создавать этот раздел в файле справки (как мне кажется) не является критической необходимостью для пользователей программы

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

Salmo 29-04-2013 20:10 2141866

Попытки авто-обновиться уже не первый раз заканчиваются сообщением "Невозможно определить статус версии на сервере"

K.A.V. 11-05-2013 11:23 2147945

Цитата:

Цитата Salmo
Попытки авто-обновиться уже не первый раз заканчиваются сообщением "Невозможно определить статус версии на сервере" »

Это уже проблемы не SFX Creator, а хостинга, на котором располагаются файлы обновления

К тому же, в этой теме всегда будет актуальная версия SFX Creator т.к. изначально SFX Creator создавался в рамках OSZone "Автоматической установки"
Делать возможность обновления с нескольких серверов не вижу смысла, т.к. проект не обновляется каждый день и, собственно, это не такой огромный и важный проект для людей, как ОС или антивирус :)

K.A.V. 13-05-2013 22:39 2149573

Уважаемые пользователи SFX Creator!

Открылся форум с разделом обсуждения программы на моём сайте.
Кто заинтересован в развитии проекта, может приходить в гости и учавствовать в голосованиях и в высказывании мнения относительно вводимых возможностей и улучшений

Так же на форуме, я, скорее всего, буду публиковать различные примеры по созданию архива с помощью SFX Creator
Вообщем всё, что относится к SFX Creator (доп. инфа) я буду публиковать там, чтобы не создавать в этой теме бессмысленный мусор из отдельных сообщений

Кому интересно - милости просим :)

still.alive.79827@fb 15-05-2013 17:25 2150527

где настройки графического интерфейса? в справке написано:
Цитата:

Для подключения графического интерфейса в проекте:
1. Откройте диалог "Управление проектами" нажав на соответствующую кнопку в главном окне программы
2. Нажмите на кнопку "Настройка графического интерфейса проекта"
3. Установите галочку на пункт "Задействовать UI оболочку" в главном окне настроек интерфейса
Перехожу на "Управление проектами" и там у меня нету ничего про графический интерфейс

K.A.V. 15-05-2013 18:27 2150559

Цитата:

Цитата still.alive.79827@fb
Перехожу на "Управление проектами" и там у меня нету ничего про графический интерфейс »

Просто в интерфейсе программы произошли изменения, и данная кнопка была переделана под другой функционал, а в справке поправить забыл :(
Графический интерфейс можно настроить из "Меню SFX Creator" (в левом верхнем углу программы зелёный крестик)

GenLaden 23-06-2013 00:13 2172428

Добрый вечер. Во-первых спасибо за труды автору данной программы. Все время пользовался раровским exe компилятором пока не столкнулся с рядом трудностей, о них по порядку...

Есть приложение "А" на английском языке в инсталляторе Nullsoft.
Есть файлы руссификации этого приложения "Б".
Алгоритм прост, ставим английскую версию "А", поверх накатываем файлы русификации "Б"
Проблема в том, что после установки английской версии инсталятор Nullsoft запускает установленную программу на выполнение netcard.exe и русификация происходит с ошибками. Раровский компилятор не обладает функционалом убивания процессов, и я решил воспользоваться sfx creator.

Ну первое, что сделал запускаю с помощью "Добавления выполнения приложения" нульсофтовский инсталлятор с ключом \S тихой установки.
Второе установил "Проверка\закрытие" по имени процесса"Netcard.exe
Третье прописал путь установки русифицированных файлов.
Компилирую, запускаю, и тут меня ждет неудача. Судя по всему второе не выполняется, или выполняется не вовремя. Программа запускается, и файлы русификации не могут установится. Подумал, ну да ладно наверно "проверка\закрытие" срабатывает при запуске exe и в это время процесса netcard.exe еще нет. Надо искать альтернативу. На 17 страницы данной темы вычитал про плагин killprocess.dll, решил воспользоваться им. Зашел в "Выполнение собственных функций" добавил KillProcess.nsh функция KillProcess, установил опцию Выполнить до распаковки файлов. Скинул файлы в папку плагин killrocess.dll и findprocess.dll. Воспользовался по аналогии кодом с 17 страницы:
Код:

Function KillProcess
FindProcDLL::FindProc "Netcard.exe" ; укажите образ процесса
KillProcDLL::KillProc "Netcard.exe"  ; укажите образ процесса
StrCmp $R0 "1" -2 0
execwait "$PROGRAMFILES\Net\Netcard.exe" ; Ждём завершения исполнения файла
FunctionEnd

Компилирую, на этот раз лучше: Приложение запускается, третяя часть не запускается, дожидается закрытия программы, если закрыть то все ок устанавливается, но автоматически netcard.exe убиваться по прежнему не хочет. Если убрать findproc то ожидания нет программа не киляется и опять ошибка невозможности записать из-за запущенного процесса. Помогите добить процесс одним из двух этих способов, что делаю не так?.

K.A.V. 25-06-2013 01:21 2173719

GenLaden

Код:

Function KillProcess
KillProcDLL::KillProc "Netcard.exe"  ; укажите образ процесса
FindProcDLL::FindProc "Netcard.exe" ; укажите образ процесса
StrCmp $R0 "1" -2 0
FunctionEnd


GLUM890 04-08-2013 19:28 2196361

Можно ли сделать пункты выбора компонентов многоуровневыми?

K.A.V. 05-08-2013 15:26 2196698

Цитата:

Цитата GLUM890
Можно ли сделать пункты выбора компонентов многоуровневыми? »

Средствами интерфейса SFX Creator - Нет

Можно реализовать только через редактирование готового NSIS-скрипта

icq99999999 10-08-2013 10:44 2199417

есть несколько идей:
добавить в настройки сжатия пункт "Без Сжатия"
SetCompressor off
добавить возможность сжатия upx
!packhdr temp.dat '"$NSISdir\SWizard\Packers\upx" -9 -q temp.dat'
заменить
..\SFX Creator\SYS\ofiles\7zip\7z.exe на файл из версии 7z9.30
и удалить ненужную библиатеку каторую изпользует графический модуль 7z(консольной версии 7z она не нужна)
..\SFX Creator\SYS\ofiles\7zip\7z.dll

GreenStalk 20-08-2013 11:36 2204482

SFX Creator перестал скачиваться, выдает ошибку. Вложение качается, ссылка на народ битвы. Сама программа cool :)

K.A.V. 21-08-2013 16:25 2205188

Цитата:

Цитата icq99999999
есть несколько идей:
добавить в настройки сжатия пункт "Без Сжатия" »

Используйте ZLIB сжатие, практические не сжимает, работает с высокой скоростью
В будущем, может и добавлю, не знаю когда возьмусь за проект

Цитата:

Цитата icq99999999
добавить возможность сжатия upx »

Подумаю, но особо нет нужды в этом, как мне кажется

Цитата:

Цитата icq99999999
заменить
..\SFX Creator\SYS\ofiles\7zip\7z.exe на файл из версии 7z9.30
и удалить ненужную библиатеку каторую изпользует графический модуль 7z(консольной версии 7z она не нужна)
..\SFX Creator\SYS\ofiles\7zip\7z.dll »

С внутренними файлами SFX Creator и сторонними приложениями/библиотеками как-нибудь сам разберусь, что и где заменять, а что оставить, не всегда то, что новое - лучше


Цитата:

Цитата GreenStalk
SFX Creator перестал скачиваться, выдает ошибку. Вложение качается, ссылка на народ битвы. Сама программа cool »

У меня всё прекрасно скачивается, только что проверил
Попробуйте скачать с оф.сайта SFX Creator, если скачать не получится - проблема с вашей стороны

Salmo 20-10-2013 22:30 2238039

K.A.V., Добрый день. Как-то упустил, думал не понадобится, но... Скажите, пожалуйста, куда и что нужно прописать в исходнике и добавить в программу, чтобы задать степень прозрачности окна (любого) и задать всплывающие подсказки к элементам?

K.A.V. 24-10-2013 13:25 2240169

Цитата:

Цитата Salmo
Скажите, пожалуйста, куда и что нужно прописать в исходнике и добавить в программу, чтобы задать степень прозрачности окна (любого) и задать всплывающие подсказки к элементам? »

Надеюсь, вы про сам SFX Creator? :)

Идём в файл \SYS\Settings.ini, секция Options
1. Степень прозрачности окон SFX Creator регулируется параметром Transparent
Допустимые значения: от 10 до 100, обратите внимание, что SFX Creator примет только значения десятков (10, 20, 30 и т.д. до 100)

2. Всплывающие подсказки к элементам? Если вы про те, которые показываются только в главном окне программы, то включить/отключить их можно управляя значением параметра ToolTips
Допустимые значения: 0 - отключить, отсутствие или другое значение параметра включает отображение подсказок

Salmo 24-10-2013 16:55 2240364

Цитата:

Цитата K.A.V.
Надеюсь, вы про сам SFX Creator? »

Добрый день, K.A.V.. Этот вопрос намекает, на то, что подобные функции реализовать в программе к создаваемым пакетам трудоемко, нецелесообразно... И, вообще, они ни к чему...? :) А я давно хотел, в качестве "хотелки" намекнуть, что хорошо бы иметь в SFX Creator возможность создавать пользовательские окна с выбором элементов и добавлением функций, о которых упомянул выше. Т. е. не редактировать исходники вручную, а иметь страничку-конструктор в SFX Creator. Я понимаю, что трудоемко и программа переходит в другую весовую категорию... :), но... мечтать не вредно. Еще раз спасибо за программу!

K.A.V. 24-10-2013 17:28 2240388

Цитата:

Цитата Salmo
Этот вопрос намекает, на то, что подобные функции реализовать в программе к создаваемым пакетам трудоемко, нецелесообразно... И, вообще, они ни к чему...? А я давно хотел, в качестве "хотелки" намекнуть, что хорошо бы иметь в SFX Creator возможность создавать пользовательские окна с выбором элементов и добавлением функций, о которых упомянул выше. »

Не то, чтобы "нецелесообразно", а скорее я скажу так: я вряд ли смогу реализовать данный функционал в SFX Creator, я к примеру даже понятия не имею, как сделать хотя бы внешний генератор управления элементов, т.е. как организовать создание пользователем своей странички со своими элементами. Я не знаю языков программирования (SFX Creator как бы ни странно это звучало, написан на NSIS (язык для создания пакетов инсталляторов :biggrin:)), так что реализовать с помощью NSIS это не получится.
Вы не первый, кто предлагает реализовать данный функционал ;)
---

Ну, а сделать окно своего установщика полупрозрачным можно всего одной командой вызова плагина, к примеру...если он у вас есть :)

Salmo 24-10-2013 19:05 2240467

K.A.V., Спасибо за ответ!
Цитата:

Цитата K.A.V.
Ну, а сделать окно своего установщика полупрозрачным можно всего одной командой вызова плагина, к примеру...если он у вас есть »

А, если его нет? О каком плагине речь? Где найти, почитать?

K.A.V. 24-10-2013 20:36 2240530

Цитата:

Цитата Salmo
А, если его нет? »

Написать :)

Цитата:

Цитата Salmo
О каком плагине речь? »

Да я вообщем говорил, если стандартным способом через вызов функций API нельзя сделать прозрачность, то только плагином

Цитата:

Цитата Salmo
Где найти, почитать? »

В исходниках SFXCreator.dll :biggrin: в эту DLL обращается SFX Creator, чтобы управлять прозрачностью своих окон

Могу конечно эту функцию вырезать из SFXCreator.dll и сделать типа плагина в отдельной DLL, если для вас это так важно...

K.A.V. 24-10-2013 22:18 2240589

Вложений: 1
Делаем окно нашего инсталлятора прозрачным

1. Копируем файл "transparent.dll" в "\NSIS\Plugins"
2. Включаем отладку уровня исходников в SFX Creator
3. Компилируем, Открываем главный исходник
4. Находим строку вида "!insertmacro MUI_PAGE_XXX", где "ХХХ" - слова в зависимости от типа диалога
5. Вставляем строку "!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit" выше первой той, которую нашли в п.4
6. Добавляем функцию в исходник проекта:

Код:

Function myGuiInit
transparent::SetTransparentWindowStyle "200"
FunctionEnd

7. За место "200" указываем необходимый уровень прозрачности окна, допустимые значения: от 0 до 255, чем выше значение - тем меньше прозрачности будет у окна

8. Компилируем

Salmo 24-10-2013 22:48 2240611

K.A.V., Спасибо... Я признаюсь, что не сделал с помощью SFX Creator еще ни одного полноценного, в смысле традиционного понимания, инсталлятора... Т. е. окна, страницы в моих поделках отсутствовали, как класс. Привлекла, именно, возможность использовать NSIS, как замену CMD, VBS. С другой стороны, я ограничен в возможности глубоко изучать NSIS, - отсюда и желание, чтобы было доступно многое, но через нажимание кнопочек в окне программы, а не за счет мозговой атаки.... :) И, когда появился SFX Creator, и я еще узнал, что возможности его расширяемы, то был приятно впечатлен!
А теперь, что хотел сделать... Нужен процесс создающий прозрачное окно-трафарет с прозрачными элементами, которое можно накладывать на изображения, карты, другие окна, меняя размер окна-трафарета, при этом, получая всплывающие подсказки к элементам. Т. е, фактически, подобие, в чем-то, главного окна Вашей программы...
Цитата:

Цитата K.A.V.
Могу конечно эту функцию вырезать из SFXCreator.dll и сделать типа плагина в отдельной DLL, если для вас это так важно.. »

Очень заманчивое предложение... :cool: .... и всплывающие подсказки :sorry:

K.A.V. 25-10-2013 11:58 2240821

Цитата:

Цитата Salmo
Т. е. окна, страницы в моих поделках отсутствовали, как класс »

Да SFX Creator изначально и не задумывался как "создатель пакетов инсталляторов" :)
Со своими задачами по созданию более-менее гибкого SFX программа справляется, как мне кажется

Цитата:

Цитата Salmo
Нужен процесс создающий прозрачное окно-трафарет с прозрачными элементами, которое можно накладывать на изображения, карты, другие окна, меняя размер окна-трафарета, при этом, получая всплывающие подсказки к элементам. Т. е, фактически, подобие, в чем-то, главного окна Вашей программы... »

Интересно, для каких это целей вам необходимо сделать трафарет из окна программы :o

Цитата:

Цитата Salmo
.... и всплывающие подсказки »

а это уже отдельный плагин ToolTips plug-in :)

Salmo 25-10-2013 16:59 2240989

Цитата:

Цитата K.A.V.
для каких это целей вам необходимо сделать трафарет из окна программы »

Сразу скажу, что я не искал, особо, другие варианты, но, как понимаю, средствами Nsis не получится создать всплывающие подсказки к чужим формам(?). Поэтому, хотел сделать прозрачное окно с произвольными элементами, которое при наложении на объект, дает возможность получить во всплывающих подсказках пояснение-комментарий к нему. Это нужно для пояснений к топографическим картам, которые имеются в виде сканов. Если писать отдельно, утомительно сопоставлять комментарий и объект, писать на карте - будет каша.
Пожалуйста, поясните, как это сделали в отношении прозрачности, куда в коде, что писать, в отношении плагина ToolTips.
И можно ли сделать подгон размера окна, растягивая стороны мышкой? Спасибо.

K.A.V. 26-10-2013 06:55 2241266

Salmo, ответил в личку, т.к. обсуждение выходит за рамки SFX Creator

atsasinWTF 04-11-2013 18:11 2247296

K.A.V.,
почему не кэшируются .cmd файлы?
выставил *.* для кэширования.

мне нужно после распаковки выполнить .cmd

K.A.V. 04-11-2013 21:05 2247418

Вложений: 1
Цитата:

Цитата atsasinWTF
почему не кэшируются .cmd файлы?
выставил *.* для кэширования. »

У меня всё кешируется
На кнопочку сохранения нажимали после редактирования текстового поля?

atsasinWTF 05-11-2013 12:07 2247759

K.A.V.,
Извините меня, все работает.
Спасибо за Creator!

ps
а возможно, добавить "Показать картинку в завершении" и что бы PNG формат поддерживался?
еще, в "Добавление выполнения приложения" нельзя менять очередность команд, можно сделать перемещение команд вверх/вниз?

K.A.V. 05-11-2013 17:36 2247984

Цитата:

Цитата atsasinWTF
добавить "Показать картинку в завершении" »

Сомнительная возможность, мне кажется, достаточно и того, что есть возможность показывать изображение перед запуском...
Цитата:

Цитата atsasinWTF
что бы PNG формат поддерживался »

Вообще, плагин, который показывает изображение может показывать bmp, gif и jpeg изображения, но т.к. jpeg самый востребованный формат - поставил его при выборе в интерфейсе, PNG изображения не поддерживаются

Цитата:

Цитата atsasinWTF
еще, в "Добавление выполнения приложения" нельзя менять очередность команд, можно сделать перемещение команд вверх/вниз? »

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

atsasinWTF 05-11-2013 22:17 2248157

Цитата:

Цитата K.A.V.
Сомнительная возможность, мне кажется, достаточно и того, что есть возможность показывать изображение перед запуском... »

а может сделать и пусть будет? )
Цитата:

Цитата K.A.V.
Планируйте зарание последовательность команд. »

так и делаю.

K.A.V. 06-11-2013 00:15 2248223

Цитата:

Цитата atsasinWTF
а может сделать и пусть будет? ) »

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

K.A.V. 11-11-2013 00:45 2251686

Уважаемые пользователи SFX Creator!


Ошибка в модуле обновления SFX Creator
Для лечения качаем фикс либо с оф.сайта, либо из шапки темы файл "FIX_update2.7.zip", при распаковке кидаем в папку SYS

K.A.V. 18-11-2013 14:32 2257115

SFX Creator 2.8 Alpha

[+] Поддержка Portable-проектов. Теперь вы можете хранить файлы в папке проекта, ссылаясь на них, не боясь абсолютных путей. Для указания директории проекта используется переменная $PROJECT, прочитайте о ней на страничке Переменные
[+] Добавлена возможность отключать сжатие данных
[+] Расширен функционал диалога "Показать информационное сообщение при запуске/завершении"
[+] Добавлен диалог настройки скина
[+] Добавлен центр загрузки

[*] Небольшая оптимизация кода
[*] Теперь SFX Creator позволяет изменять границы своих окон даже при стандартной настройке DPI

[*] Исправлена постоянная проверка обновлений при запуске, вне зависимости от настройки в SFX Creator
[*] Возможность использования ${PRODUCT_NAME} и ${PRODUCT_VER} в поле "Выходной файл" и в диалоге "Информация о версии"
[*] Исправлена ошибка, при которой SFX Creator показывал якобы ошибку компиляции, если в выходном файле указывалась переменная ${PRODUCT_VER}
[*] Исправлена ошибка, при которой SFX Creator не показывал некоторые сообщения из трея (при начале компиляции и т.д.), если после установки пользователь не выбирал режим отладки
[*] Исправлена ошибка несохранения уровня прозрачности FastAdd панели
[*] Исправлена ошибка неработоспособности прозрачности для некоторых дополнительных окон
[*] Исправлена ошибка удаления кнопки "Свернуть" и видоизменения заголовка главного окна SFX Creator после того, как пользователь открывал диалог настройки SFX Creator
[*] Исправлена мелкая ошибка при добавлении данных в проект в главном окне SFX Creator
[*] Исправлена ошибка неработоспособности переноса значений параметров редиректа и перезаписи файла/папки при удалении элементов
[*] Исправлена ошибка неработоспособности сохранения границ диалога выбора языков в графическом интерфейсе
[*] Исправление других мелких недочетов в работе интерфейса
[-] Из дистрибутива SFX Creator удалены скины графического интерфейса "Ultra Modern UI", теперь скачать их можно через центр загрузки

=== Техническая информация ===
[*] Теперь при компиляции проекта, используя ccode.exe в командной строке, в ключ "/project=" необходимо передавать только имя директории проекта, а не полный путь к файлу проекта.


P.S.
Если у кого-то есть проекты в версии 2.7, то вам необходимо скопировать папку "projects" и запустить project_conv.exe из папки SFX Creator, это приложение автоматически по имени файлов ваших проектов создаст нужную структуру каталога проектов. Либо скопируйте свои проекты до первого запуска SFX Creator (тогда конвертер запустится автоматом), либо запустите потом его вручную.
Всё дело в том, что в версии 2.8 теперь другой принцип работы с проектами, теперь для каждого проекта - своя папка и имя файла проекта у всех одинаковое, т.е. теперь проекты выглядят так:
Код:

<SFX Creator>\projects\Мой проект №1\Project.ini
<SFX Creator>\projects\Мой проект №2\Project.ini

Таким образом реализована функция Portable-проектов, которая позволяет хранить все ваши файлы касательно проекта в папке и ссылаться на них без абсолютных путей.

---
Ссылка на загрузку в шапке темы.
Вот как-то так... :beta:

Salmo 19-11-2013 17:36 2257930

Цитата:

Цитата K.A.V.
Теперь SFX Creator позволяет изменять границы своих окон даже при стандартной настройке DPI »

Добрый день... Т.е. "таскать" указателем мыши стороны окон? Это есть у меня на ХР, но только для вторичных окон, на главном нет. Или так задумано?

K.A.V. 19-11-2013 18:27 2257965

Цитата:

Цитата Salmo
Т.е. "таскать" указателем мыши стороны окон? »

Да

Цитата:

Цитата Salmo
Это есть у меня на ХР, но только для вторичных окон, на главном нет. Или так задумано? »

А в главном окне масштабируются элементы как в остальных диалогах? Вроде нет :)

Salmo 19-11-2013 22:58 2258146

Цитата:

Цитата K.A.V.
А в главном окне масштабируются элементы как в остальных диалогах? Вроде нет »

Вот, в связи с этим, вспомнил, что доставляло неудобства... В окне "добавление папок/файлов в проект" нет возможности просмотреть полные пути файлов и сам файл - они просто не помещаются в окно. Приходится выделять путь, чтобы он отразился в строке (+), затем кликать в нее курсор, двигать его вправо, чтобы прочитать всю строку. А нельзя ли в это окно (со списком всех файлов) добавить горизонтальную прокрутку?

K.A.V. 19-11-2013 23:30 2258168

Цитата:

Цитата Salmo
А нельзя ли в это окно (со списком всех файлов) добавить горизонтальную прокрутку? »

Первая тема с голосованием на форуме SFX Creator - Работает, но коряво...делаем?
Здесь очень мало места и не удобно спрашивать всех пользователей SFX Creator о каких-либо изменениях или нововведениях, а т.к. оф.сайт не посещаем, то и не было активного обсуждения в той теме.
Задумка такая была и уже давно, можете посмотреть на дату создания голосования...Тогда я не стал продолжать избивать интерфейс и временно забил на эту проблему с прокруткой...Повожусь ещё, обязательно, т.к. возможность реально нужная :( Если что-то не получится, то придётся обращаться в раздел программирования к программерам, для помощи :blush2:

Salmo 19-11-2013 23:56 2258180

Цитата:

Цитата K.A.V.
Задумка такая была и уже давно, можете посмотреть на дату создания голосования.. »

Да читал я это давно, но тогда еще не "потыркался" с многофайловым проектом :)
Цитата:

Цитата K.A.V.
а т.к. оф.сайт не посещаем, »

А меня отпугнули :o требования регистрации на сайте - зачем кому-то знать цвет моих глаз?

K.A.V. 20-11-2013 00:18 2258194

Цитата:

Цитата Salmo
А меня отпугнули требования регистрации на сайте - зачем кому-то знать цвет моих глаз? »

Ну, на моём сайте такой обязательной строки нет :biggrin: Вы, наверное про регистрацию в uID...Я уже давно там регистрировался, особо не заморачиваюсь в таких вопросах при регистрации :)

K.A.V. 20-11-2013 06:02 2258281

Цитата:

Цитата Salmo
А нельзя ли в это окно (со списком всех файлов) добавить горизонтальную прокрутку? »

Методом тестов выяснил, что с ListBox на столько NSIS не подружить, ну, по крайней мере у меня не получается (вернее есть эффект, но на столько убогий, что лучше уж без него)

Пришел к выводу, что таким убожественным интерфейсом SFX Creator'у хватит отличаться, полностью перелопачу все диалоги и переведу код SFX Creator со старой InstallOptions на новую DLL InstallOptionsEx...там есть возможность добавлять новые элементы, такие как ListView, который без проблем решает проблему и с прокруткой и много с чем ещё...

Сегодня уже самоучка помучался, завтра выложу упдашечку, которая будет решать проблему прокрутки только в главном окне SFX Creator, а постепенно и во всех диалогах появится данная "полоска счастья" :biggrin:
эх, добрая моя душа, всё для народа... :lazy:

K.A.V. 21-11-2013 01:10 2258932

21.11.13 обновление для SFX Creator
Список изменений:
1. Данное обновление добавляет возможность горизонтальной прокрутки в списке добавленных файлов в главном окне SFX Creator
Данная возможность постепенно будет появляться в остальных диалогах программы

2. Исправлена неточность в модуле обновления в функции получения новостей, иногда при старте выскакивало "нет новостей" или "невозможно получить последние новости

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

icq99999999 30-11-2013 01:40 2264168

при компиляции программы(в настройках сжатия\сжатие с помощью 7-zip) без архиватора 7z вылетает ошибка.
потому что используется ..\SYS\ofiles\7zip\7zip.exe не ПРЕДНАЗНАЧЕННЫЙ для запуска без самого архиватора 7-zip. а точней при запуске 7zip