PDA

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


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

K.A.V.
10-02-2013, 08:44
SFX Creator 2.7

[+] DPI Fix: при превышении DPI настройки в системе, SFX Creator отключает масштабирование элементов и позволяет управлять границами окон в своих диалогах
[+] Возможность остановить процесс компиляции в окне лога компиляции

[+] Возможность кеширования всех типов файлов
[+] Добавлена возможность отключать редирект в x64 системах

[+] Диалог "Добавить выполнение приложения" => Возможность запускать приложения в зависимости от разрядности ОС
[+] Диалог "Установить пароль на архив" => Скрыть пароль при вводе
[+] Настройка SFX Creator => Управлять границами окон

Теперь не нужно нажимать в главном окне SFX Creator кнопку "Сохранить" для сохранения данных в группе "Главные настройки", всё сохраняется автоматически
Исправлена неработоспособность "Самоудаления" методом "DLL" в ОС начиная от Windows Vista (спасибо "Limonica")
[+] Сохранение уровня прозрачности FastAdd панели

Дэмиен
10-02-2013, 09:43
K.A.V., :clapping: СПАСИБО за новую версию, испробуем! :yahoo:

Salmo
10-02-2013, 17:38
K.A.V., Спасибо за труд! Обновился автоматом. Нужно время, чтобы ознакомиться с новыми функциями, но пока нет никаких проектов, требующих отключения перенаправления... А как будет решаться задача отключения перенаправления в реестре?

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

K.A.V.
10-02-2013, 22:56
А как будет решаться задача отключения перенаправления в реестре? »
Позже решим этот вопрос добавлением команды SetRegView (можете прочитать о ней в Справочнике по NSIS (http://forum.oszone.net/thread-168287.html))
Просто времени уже прилично прошло с момента выхода версии 2.6, поэтому решил выложить то, что уже наработал
А функционал с перенаправлением реестра думаю опять же, малому количеству пользователей нужен, поэтому сделаем чуть позже :)

отключение перенаправления затрагивает только процессы инсталлятора или все процессы системы »
Все процессы системы было бы жирновато, не находите? ;)
Настройка действует только в пределах инсталлятора, а как насчет дочерних процессов, запускаемых инсталлером, насчет этого ничего не скажу, т.к. не тестил

и когда эта настройка перестает действовать и восстанавливается функция перенаправления, если выбраны настройки "отключить х64 редирект" и "восстанавливать глобальную настройку после каждой команды" ? »
В справке к SFX Creator же написано, то, что вы выбираете в диалоге настройки редиректа включить/отключить, то и устанавливается при запуске вашего инсталлятора
И настройка перенаправления (глобальная настройка) будет действовать до тех пор, пока какая-либо команда в скрипте не установит свою настройку (например вы можете изменить настройку редиректа при распаковке ваших файлов, для каждой записи отдельно)
Кстати говоря, версия 2.7 может установить настройку редиректа перед исполнением любой доступной команды в SFX Creator, только вот этот переключатель перенаправления в диалогах программы просто не существует, т.к. честно признаться, было лень лопатить все диалоги, т.к. особой ценности в данном функционале я, по крайней мере сейчас, не вижу
Но если кому интересно, могу рассказать, как можно изменить настройку редиректа перед исполнением какой-либо команды в скрипте

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

Salmo
11-02-2013, 13:34
K.A.V., Спасибо за ответы... Логику работы отключения перенапроавления Вашей программы я понял сразу и читать справку перед работой в моих правилах :) Мои вопросы обусловлены вот чем: Если отключение перенаправления распространяется на другие процессы системы и дочерние процессы инсталлятора - это важный фактор, который необходимо учитывать. Если после отключения перенаправления, какой-либо 32 битный процесс обратится к своей библиотеке, которая находится в SYSWoW64 и куда ОС должна перенаправить вызов, то произойдет попытка загрузки 64 битной библиотеки из System32 (этот путь прописан жестко в 32 битных приложениях), что приведет к краху приложения. А так как глобальная настройка действует длительное время (установка может длится минуты), то вероятность этого велика. Поэтому я и предлагал этот вариант: переключатель перенаправления в диалогах программы просто не существует, т.к. честно признаться, было лень лопатить все диалоги, т.к. особой ценности в данном функционале я, по крайней мере сейчас, не вижу »
и после каждого отключения перенаправления немедленно его восстанавливать...
http://msdn.microsoft.com/en-us/library/aa384187(v=vs.85).aspx

K.A.V.
11-02-2013, 14:02
Если отключение перенаправления распространяется на другие процессы системы и дочерние процессы инсталлятора »
Из вашей же ссылки, читайте:
Disabling file system redirection affects all file operations performed by the calling thread

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

Salmo
11-02-2013, 14:43
действует в пределах одного потока »
Да, да, я сделал более широкое допущение упомянув все процессы, но для нашей ситуации (внутри потока) эта рекомендация полезна? Имеет ли практический смысл учитывать ее? Вам, как разработчику, виднее... я же только делюсь информацией :)
"...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
но для нашей ситуации (внутри потока) эта рекомендация полезна? »
Сам не знаю, поэтому отвечать не буду :)
Если даже и полезна, то у SFX Creator есть для этого настройка "Восстанавливать глобальную настройку редиректа после каждой команды", т.е. если боимся, делаем так:
Включаем настройку редиректа в положение "Включить x64 редирект", и отдельно прописываем отключение редиректа перед исполнением приложений или команд, в коде будет так:

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

Salmo
11-02-2013, 15:38
Включаем настройку редиректа в положение "Включить x64 редирект", и отдельно прописываем отключение редиректа перед исполнением приложений или команд, в коде будет так: »
Да, этот вариант я вижу, - это хорошо, но я недаром описал ситуацию раньше, когда сделан выбор "отключить х64 редирект" и "восстанавливать глобальную настройку после каждой команды". Если, по какой-либо причине, пользователель выберет этот вариант, а его скрипт, по ходу установки, запускает еще и 32 битное приложение с подгрузкой библиотеки, что он не учел, то будет крах... К чему вся эта писанина? К тому, что использовать функцию отключения перенаправления без проблем сможет, только, осведомленный пользователь. А, так как, Вы позиционировали свою программу, как "конструктор" для широкого круга потребителей (что очень ценно), я и обратил на это внимание и "достаю" :) Вас... Я думаю, что Вы заинтересованы в том, чтобы неопытные пользователи избегали подводных камней... Я же уже давно использую х64.nsh, а чаще, более безопасный способ, через псевдоним Sysnative, если это уместно...

K.A.V.
12-02-2013, 10:19
К чему вся эта писанина? К тому, что использовать функцию отключения перенаправления без проблем сможет, только, осведомленный пользователь. »
Мне кажется, что если пользователь уже знает вообще что такое x64 редирект, то он интуитивно должен все эти моменты прокрутить у себя в голове
Спросите у рядового пользователя, хотя бы у того, кто может сам просто переустановить Windows и установить какое-либо ПО, в чем различия 32-битной ОС от 64-битной, вам в ответ скажут только одно - в 64-bit можно больше памяти использовать, на этом все преимущества перед 32-битной ОС у рядовых пользователей заканчиваются, они даже и предположить не могли, что в 64-битной ОС есть такие тонкости как редирект...

Я думаю, что Вы заинтересованы в том, чтобы неопытные пользователи избегали подводных камней... »
Заинтересован, НО если пользователь берётся создавать перепаковщики программ, то он уже должен иметь достаточный опыт в работе с ПО
Тем более в наше время, проблем с тестом на разных ОС нет никаких проблем...Поставил на виртуальную машину разные выпуски и сидишь тестируешь, что не работае -проверяешь
А у нас принято делать на "да должно работать", склепают кривые инсталляторы и другие потом срадают

Salmo
12-02-2013, 22:37
K.A.V., Сдаюсь!!! :flag:

Fan007
26-02-2013, 13:04
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
Fan007, здравствуйте
Но при компилировании все равно выдает ошибку об слишком большом архиве. »
Приведите, пожалуйста, скриншот с ошибкой
По текущему описанию вашей проблемы я не могу понять, в каком месте кода программы искать ошибку, если таковая вообще существует

---
Только что произвёл упаковку данных с помощью 7-Zip общим размером в 6,68 ГБ, указав разбивку на тома по 2 Гб, на выходе получилось 3 файла по 2 Гб и один 702 Мб
Никаких проблем при упаковке или распаковке данных не возникло

Ждём подробное описание ошибки

Limonica
28-02-2013, 17:53
KAV сделайте портабл версию программы, например чтоб вместо полных путей брались относительные, в зависимости от в какой папке находится:

*\Папка\1.ico

K.A.V.
28-02-2013, 18:14
например чтоб вместо полных путей брались относительные »
Относительно чего?
Хотите хранить файлы всех проектов в подпапке с SFX Creator? Правильно мысль улавливаю?

Limonica
06-03-2013, 19:21
абсолютно верно!

Salmo
20-03-2013, 16:03
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
K.A.V., Добрый день! Только сейчас заметил, что в исходнике отсутствует сообщение о необходимости войти в систему с правами Админа... »
Привет :)
Там над галочкой "Требовать права администратора" есть выпадающий список, где выбирается тип иконки, которая будет в сообщении, установи тип иконки
Оказалось, что если пользователь не ставит выбор в этом выпадающем списке (параметр не прописывается в файл проекта), то сообщение не прописывается в скрипт

Это впринципе не критично, поэтому исправлю это позже :blush2:

Smith_Wesson
21-03-2013, 16:09
Всем доброго времени! Уважаемый 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
Smith_Wesson, здравствуйте
Попробуйте прописать путь к vbs файлу как параметр к исполняемому приложению, а не всё в одну строку...
Пример (http://s1.ipicture.ru/uploads/20130321/zW6E8i5b.jpg)

Отдельно, ftp_.vbs - отрабатывает, на ура »
Я со скриптами не работаю, но вы уверены, что нужно прописывать именно cscript.exe, а не wscript.exe?

Ещё в догонку, попробуйте указать исполнение скрипта как Shell-запуск (но только в команду пишите только путь к VBS файлу)
Пример (http://s1.ipicture.ru/uploads/20130321/h5uqFYO4.jpg)




© OSzone.net 2001-2012