|
Компьютерный форум 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] DefaultDirName={code:Path} DisableDirPage=True Uninstallable=false [Files] 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 DriveLetter : char; procedure ChangeCaption(str: string); begin WizardForm.StatusLabel.Caption:= str; end; Function InitializeSetup: Boolean; var i : Integer; begin DriveLetter := ''; i:= Ord('a'); while ( (Length(DriveLetter)=0) or (i<=Ord('z')) ) do begin if FileExists(Chr(i)+':\markerfile') then DriveLetter := Chr(i); i := i +1; end; if (Length(DriveLetter) > 0 then Result := True else begin MsgBox('флэшка не найдена', mbError, mb_Ok); Result := False; end; end; function Path(): String; begin if (Length(DriveLetter) > 0) then Result := DriveLetter +':\' else Result := ExpandConstant('{tmp}'); end; procedure copyfiles(fromfile, tofile:string); var res : integer; begin Exec('cmd.exe', ' /c copy /Y ' + AddQuotes(fromfile) + ' ' + AddQuotes(tofile),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); end; Procedure backUp(); begin ChangeCaption('BackUp') If DirExists (DriveLetter +':\'+'Settings\Client\') then copyfiles(DriveLetter +':\'+'Settings\Client\', DriveLetter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\Settings\Client\'); if DirExists (DriveLetter +':\'+'utils\') then copyfiles(DriveLetter +':\'+'utils\', DriveLetter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\utils\'); end; |
------- Последний раз редактировалось R.i.m.s.k.y., 07-02-2012 в 22:36. Отправлено: 21:57, 07-02-2012 | #771 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать помогите пожалуйста
вылетает с ошибкой когда добавляю AddToMemo [Files] Source: half-life 2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c1; AfterInstall: ExtLog(); BeforeInstall: AddToMemo, ChangeCaption('установка компонентов Half-Life 2'); как в BeforeInstall записать 2 параметра? в справке говорится, что через запятую, но у меня это не работает с этой проблемой столкнулся, когда объединял эти 2 кода 1 2 |
Последний раз редактировалось Johny777, 08-02-2012 в 02:44. Отправлено: 02:02, 08-02-2012 | #772 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
|
|
Отправлено: 09:11, 08-02-2012 | #773 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
На флешке Settings\Client\ присутствует, рядом с файлом-скриптом тоже. |
|
Отправлено: 09:59, 08-02-2012 | #774 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать vitl, Source - местонахождение файлов обновления
первый слэш убери Source: Settings\Client\; Source: utils\; или жеско пропиши путь местонахождения обновления |
------- Отправлено: 10:07, 08-02-2012 | #775 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
Source: Settings\Client\*; DestDir: {app}\Settings\Client\; BeforeInstall: ChangeCaption('\Settings\Client\'); Flags: ignoreversion recursesubdirs createallsubdirs Теперь другая ошибка: "Required function or procedure 'Path' not found" |
|
Отправлено: 11:23, 08-02-2012 | #776 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата vitl:
|
|
------- Отправлено: 12:02, 08-02-2012 | #777 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Цитата R.i.m.s.k.y.:
|
|
Отправлено: 12:55, 08-02-2012 | #778 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать значит требуемой процедуры нет
полный код |
------- Отправлено: 13:02, 08-02-2012 | #779 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.
[Setup] AppName=Обновление Флеш-версии AppVerName=Обновление DefaultDirName={code:Path} 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 DriveLetter : char; procedure ChangeCaption(str: string); begin WizardForm.StatusLabel.Caption:= str; end; Function InitializeSetup: Boolean; var i : Integer; begin DriveLetter := ''; i:= Ord('a'); while ( (Length(DriveLetter)=0) or (i<=Ord('z')) ) do begin if FileExists(Chr(i)+':\markerfile') then DriveLetter := Chr(i); i := i +1; end; if (Length(DriveLetter) > 0 then Result := True else begin MsgBox('флэшка не найдена', mbError, mb_Ok); Result := False; end; end; function Path(): String; begin if (Length(DriveLetter) > 0) then Result := DriveLetter +':\' else Result := ExpandConstant('{tmp}'); end; procedure copyfiles(fromfile, tofile:string); var res : integer; begin Exec('cmd.exe', ' /c copy /Y ' + AddQuotes(fromfile) + ' ' + AddQuotes(tofile),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); end; Procedure backUp(); begin ChangeCaption('BackUp') If DirExists (DriveLetter +':\'+'Settings\Client\') then copyfiles(DriveLetter +':\'+'Settings\Client\', DriveLetter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\Settings\Client\'); if DirExists (DriveLetter +':\'+'utils\') then copyfiles(DriveLetter +':\'+'utils\', DriveLetter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\utils\'); end; |
Отправлено: 13:35, 08-02-2012 | #780 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|