|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1273 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать vitl,
код рабочий джигурда процентов [Setup] AppName=Обновление Флеш-версии AppVerName=Обновление UsePreviousAppDir=no AppendDefaultDirName=no AllowRootDirectory=yes DirExistsWarning=no DefaultDirName={code:Pathapp} DisableStartupPrompt=yes DisableReadyPage=yes ; DisableFinishedPage=yes DisableDirPage=True DisableProgramGroupPage=yes OutputBaseFilename=Updater_Fl Compression=lzma SolidCompression=yes Uninstallable=false //WizardImageFile=SFXLogo3.bmp [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Files] ; Source: "{src}\utils\*"; DestDir: "{app}\"; Flags: external recursesubdirs skipifsourcedoesntexist Source: filenull; DestDir: {tmp}; BeforeInstall: BackUp; Flags: ignoreversion Source: Settings\Client\*; DestDir: {app}\Settings\Client\; BeforeInstall: ChangeCaption('\Settings\Client\'); Flags: ignoreversion recursesubdirs createallsubdirs Source: utils\; DestDir: {app}\utils\; BeforeInstall: ChangeCaption('\utils\'); Flags: ignoreversion recursesubdirs createallsubdirs [*Code] var Drive_Letter : string; procedure ChangeCaption(str: string); begin WizardForm.StatusLabel.Caption:= str; end; Function InitializeSetup: Boolean; var i : Integer; begin Drive_Letter := ''; i:= Ord('a'); while ( (Length(Drive_Letter)=0) and (i<=Ord('z')) ) do begin if FileExists(Chr(i)+':\markerfile') then Drive_Letter := Chr(i); i := i +1; end; if (Length(Drive_Letter) > 0) then begin Result := True end else begin MsgBox('флэшка не найдена', mbError, mb_Ok); Result := False; end; end; function Pathapp(String:String): String; begin if (Length(Drive_Letter) > 0) then Result := Drive_Letter +':\' else Result := ExpandConstant('{tmp}'); end; procedure copyfiles(fromfile, tofile:string); var res : integer; begin Exec('cmd.exe', ' /c xcopy /Y ' + AddQuotes(fromfile) + ' ' + AddQuotes(tofile),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); end; Procedure backUp(); begin ChangeCaption('BackUp'); If DirExists (Drive_Letter +':\'+'Settings\Client\') then copyfiles(Drive_Letter +':\'+'Settings\Client\*', Drive_Letter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\Settings\Client\'); if DirExists (Drive_Letter +':\'+'utils\') then copyfiles(Drive_Letter +':\'+'utils\*', Drive_Letter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\utils\'); end; |
------- Отправлено: 14:40, 08-02-2012 | #781 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Спасибо, R.i.m.s.k.y. 2.) Но почему то не обновляются файлы (при запуске готового EXE-ка), а только бэкапятся. В чем м.б. проблема? При компиляции такого нет. 3.) Что делает код? (см. ниже) Цитата R.i.m.s.k.y.:
|
||
Последний раз редактировалось vitl, 08-02-2012 в 19:36. Отправлено: 18:48, 08-02-2012 | #782 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать vitl,
1. пожалуйста 2. строчка Source: Settings\Client\*; DestDir: {app}\Settings\Client\; копирует обновления, проверяйте пути, можно в ее изменить, добавить AfterInstall: MsgBox(ExpandConstant('{app}\Settings\Client\'), mbError, mb_Ok) - будет выводится путь куда пишется, хотя это должно писаться над зеленой колбасой 3. бэкапит, nullfile - любой левый мелкий файлик, можно и через CurStepChanged, но это следующий уровень 4. писать руками имена файлов в Procedure backUp() |
------- Отправлено: 21:41, 08-02-2012 | #783 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
на одном уровне с ЕХЕ-ком положить каталог UPD\, который содержит обновленные папки с файлами (т.е. Settings\Client\ и UTILS\), как и в корне флешки? Чтобы из UPD\ подхватывались обновления - чтобы не дописывать каждый раз скрипт при изменении в последующих обновлениях. Т.е. в дистрибе с обновлениями папка UPD\ будет повторять корень флешки. 2.) Еще вопрос по тому-же скрипту: что изменить в коде, чтобы копировались в backup только те файлы, которые обновляются? |
|
Последний раз редактировалось vitl, 08-02-2012 в 22:20. Отправлено: 22:11, 08-02-2012 | #784 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать vitl,
1. Source: {src}\upd\Settings\Client\*; ... Flags: external 2. см 4 выше, ручками дописываешь в процедуру backup в copyfiles(Drive_Letter +':\'+'Settings\Client\file1', Drive_Letter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\Settings\Client\'); Можно конечно замутить опрос в цикле {src} и бэкап, но а) сложность не оправдывается целями ибо б) полные бэкапы спасут мир, а инкрементные следует предать анафеме |
------- Отправлено: 22:26, 08-02-2012 | #785 |
Старожил Сообщения: 304
|
Профиль | Отправить PM | Цитировать Прошу помощи:
Во время установки запускается процесс, нужно дождаться появления его окна и убить процесс. Не убивается процесс. |
Последний раз редактировалось gvshil, 09-02-2012 в 08:20. Причина: убрал запятую в MyP;rog.exe Отправлено: 02:01, 09-02-2012 | #786 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать gvshil, а что делает точка с запятой в имени экзешника?
|
------- Отправлено: 08:10, 09-02-2012 | #787 |
Старожил Сообщения: 304
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
|
|
Отправлено: 08:19, 09-02-2012 | #788 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать gvshil,
а руками из комстроки он прибивается? |
------- Отправлено: 08:28, 09-02-2012 | #789 |
Старожил Сообщения: 304
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.
Отписал в РМ. |
Отправлено: 08:45, 09-02-2012 | #790 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Test | ferget | Тест-форум | 0 | 24-08-2011 01:25 | |
test | ! ! Aaa ! ! | Тест-форум | 0 | 23-04-2011 11:29 | |
test | Santa aka Snt | Тест-форум | 0 | 16-04-2011 22:35 | |
test | xolod. | Программное обеспечение Linux и FreeBSD | 0 | 19-04-2009 21:03 | |
Test memory | KEugeNik | Хочу все знать | 11 | 23-11-2003 23:11 |
|