Цитата MaGoth:
Хм.. дайте подумать, а вот, помните я скидывал вам пдфку для игрового инсталлера, но там тупо по интерфейсу все было расписано? »
|
Неа, не помню,всё не запомнить...
Цитата MaGoth:
Что до прогресса и либы, то да, перебор функций апи и гора этого кода в скрипте, при том чтобы все корректно работала доставляют море удовольствия. Не говоря о конкретных зависонах самого инсталла, по окончанию установки и перехода на финальную страничку.. »
|
Перебор? Вам буквально 1 функция нужна по созданию элемента управления...
Гора кода?
Зависоны?
Ну,в моём примере ничего из вами перечисленного я не заметил
Дополнительный прогресс бар
Код:
![Выделить весь код](images/misc/selectcode.png)
; K.A.V. Progress test
var LabelText
var ProgressBar
OutFile "PAGE_INSTFILES_MyProgress_Test.exe"
InstallDir "$TEMP"
!include MUI2.nsh
!insertmacro MUI_PAGE_DIRECTORY
!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyProgress
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "Russian"
ShowInstDetails nevershow
Function MyProgress
FindWindow $R0 "#32770" "" $HWNDPARENT
System::Call 'user32::CreateWindowEx(i0,t"msctls_progress32",t"",i${WS_CHILD}|${WS_VISIBLE},i5,i120,i520,i20,i$R0,i6666,i0,i0) i.R2'
StrCpy $ProgressBar $R2
StrCpy $LabelText "[ Подготовка к началу установки ]"
DetailPrint "Подготовка к началу установки..."
System::Call 'user32::CreateWindowEx(i0,t "Static",t "$LabelText",i${DEFAULT_STYLES},i5,i100,i525,i20,i$R0,i7777,i0,i0) i.R2'
GetDlgItem $LabelText $R0 7777
SendMessage $R0 ${WM_GETFONT} 0 0 $R9
SendMessage $R2 ${WM_SETFONT} $R9 0
FunctionEnd
Section
Sleep 3000
st:
intop $0 $0 + 1
SendMessage $ProgressBar ${PBM_SETPOS} "$0" "0"
SendMessage $LabelText ${WM_SETTEXT} 0 'STR:Прогресс $0%'
DetailPrint "Инфа о деталях установки...А тем временем, у нижнего прогресса $0% :)"
sleep 150
StrCmp $0 "100" 0 st
SendMessage $LabelText ${WM_SETTEXT} 0 'STR:[ Завершено ] $0%'
SectionEnd
Section
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
sleep 500
SectionEnd
Цитата MaGoth:
Хотелось бы глянуть примерчик »
|
Я уже писал здесь и не раз, насчет ленивых людей, я вам дал подсказку, по которой вы сможете найти этот пример в этой теме, вы хотите, чтобы я за вас потратил время и перечитывал сообщения? Неее, мне вот, тоже лень
![Smile](images/smilies/new/smile.gif)
Но скажу так, тот пример был сделан конкретно под человека, т.е. там я писал функцию с фиксированным количеством секций для взаимодействия, так что тот пример не универсальное средство для борьбы с глюками взаимоисключающих секций.
Цитата Dodakaedr:
Подскажите как с помощью rename переместить папку(не пустую) с заменой файлов, папок при необходимости? Так не работает: »
|
Перемещение папки возможно только в пределах одного диска, т.е. вы не сможете переместить папку, скажем, с диска C на диск D. Так же, данная функция может не отработать корректно, если файл уже существует в указанной конечной папке. Можете использовать флаг
/REBOOTOK, данный флаг поможет переместить файлы после перезагрузки компьютера, если невозможно было переместить некоторые файлы (опять же, не знаю, как функция будет отрабатывать, хотите - проверьте)
Вообще, лучше бы выполнили копирование файлов и затем удаление первой директории...
А вообще, в команде в качестве конечного пути необходимо указывать новое имя папки помимо путя, куда вы собираетесь перемещать папку, например:
Код:
![Выделить весь код](images/misc/selectcode.png)
Rename "C:\Перемещаемая папка" "C:\Путь 1\Ещё путь\Новое имя перемещаемой папки"