|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2] |
|
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]
|
Ветеран Сообщения: 1133 |
Лимит страниц.
Тема закрыта. Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3] Внимание! Данная тема предназначена только для обсуждения написания скриптов ! Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Ссылка на архив предыдущей темы (также можно скачать из вложения) |
|
------- Отправлено: 22:06, 23-08-2009 |
![]() Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Подскажите где можно подглядеть как писать скрипт на распаковку архивов *.7z через секцию [RUN]. И какие для этова нужны дополнительные файлы и dll?
|
Отправлено: 17:53, 13-03-2010 | #1531 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1133
|
Профиль | Отправить PM | Цитировать Цитата МИШАНЧИК:
Цитата из Справки:
Цитата МИШАНЧИК:
Цитата Deen:
|
||||
------- Отправлено: 19:35, 13-03-2010 | #1532 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Срочно!
![]() Никогда не заморачивался над внешним видом, но такое очень хочется повторить! ![]() Подскажите как, я думаю это не сложный код!? Битмэп во всю ширину. |
------- Отправлено: 21:08, 13-03-2010 | #1533 |
Ветеран Сообщения: 1133
|
Профиль | Отправить PM | Цитировать Цитата semiono:
В шапке темы есть ссылка на скрипт Картинка на страницах инсталлятора. |
|
------- Отправлено: 22:20, 13-03-2010 | #1534 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать О! Спасибо, я не думал что так много! Но раз есть готовое, то не важно сколько строк.
![]() --- Немного поясню, может не совсем правильно понят был. Картинку буквально не надо растягивать, достаточно только показать готовую широкую картинку по площади окна. И только на StartPage и на FinishPage. Нижнее поле кнопок не надо покрывать картинкой, это хотелось бы поправить. Может сам справлюсь, я пока удалил другие страницы, но диалоги тоже какие-то остались со "скином", пока думаю... Типичный мой инсталлер - Welcome! | сразу > Redy to Install | Installing... | Complete! - больше ничего! Картинка в области кнопок ещё и плохо тем что стили WinXP там обычно плохо прорисовываются. |
------- Последний раз редактировалось semiono, 13-03-2010 в 23:20. Отправлено: 22:56, 13-03-2010 | #1535 |
![]() Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Serega, а поточнее можно, я понимаю что это уже наверное обсуждали и где на форуме это есть. Я осилил только 28 стр. и научился делать простейшие репаки без внешних упаковщиков, но иногда выходит размер не тот что надо и я пошол дальше учиться.
Посуветуйте чем проще сжимать, я сам решил что 7зип проще чем фриарк, я извлекал много разных скриптов, но в основном попадаются с ФА, а не с 7зип. Вот например из скрипта игры AvP от механиков: [Files] Source: {tmp}\button.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\logo.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\papka.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\ac.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\sr.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\msvcr80.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\packjpg_dll.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\pp.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\zlib1.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Или вот от игры Dirt 2: [Files] Source: {tmp}\BitmapHelper.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\InnoCallback.dll; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\Background.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\Buttons.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\Flags.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\FolderImage.bmp; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy Source: {tmp}\arc.exe; DestDir: {tmp}; MinVersion: 4.0,5.0; Flags: deleteafterinstall dontcopy |
Отправлено: 23:18, 13-03-2010 | #1536 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Есть ещё один вопрос для меня актуальный.
Я давно ещё хотел зделать запуск программы "taskkill.exe", но только самодельной утилиты. Проблема в том, что даже если зделать запуск из секции [code] перед началом установки, то остаётся не решённым то что надо заранее иметь утилиту в папке {tmp} А как её туда скопировать из инсталятора перед установкой? Получается замкнутый круг. Но я придумал тогда зделать один инсталятор внутри другого. Но может быть есть более красивый способ? Системный taskkill.exe не годится, на него надежды мало, так как он может просто не работать если в системе не установленна WBEM - такое просто запорет установку за зря. Очень плохо что этап распаковки происходит в один раз без контроля из секции [code] А может есть способ всётаки? |
------- Отправлено: 23:37, 13-03-2010 | #1537 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Мои изобретения -
Кампилируем первый файл: (stubz.exe) [Setup] AppName=stub AppVerName=stub 1.1.1.1 AllowUNCPath=yes DefaultDirName={win} DirExistsWarning=no DisableDirPage=yes DisableFinishedPage=no DisableProgramGroupPage=yes DisableReadyMemo=yes DisableReadyPage=no ArchitecturesInstallIn64BitMode=x64 Compression=lzma SolidCompression=yes OutputDir=. OutputBaseFilename=stubz TouchDate=2001-01-01 TouchTime=00:00 MinVersion=4.1,4.0 VersionInfoCompany=Semiono VersionInfoCopyright=2001-2005 GmbH VersionInfoDescription=stub VersionInfoTextVersion=1.1.1.1 VersionInfoVersion=1.1.1.1 Uninstallable=no UsePreviousAppDir=no [Kode] // < защита от html тэга procedure InitializeWizard(); begin try DelTree(ExpandConstant('{sd}\Test\*'), False, True, True); except Beep; Exit; end; end; [Files] Source: "pkill.exe"; DestDir: "{sd}\Test"; Flags: touch; Permissions: admins-full [Setup] AppName=stub AppVerName=stub 1.1.1.1 AllowUNCPath=yes DefaultDirName={win} DirExistsWarning=no DisableDirPage=yes DisableFinishedPage=no DisableProgramGroupPage=yes DisableReadyMemo=yes DisableReadyPage=no ArchitecturesInstallIn64BitMode=x64 Compression=lzma SolidCompression=yes OutputDir=. OutputBaseFilename=stub TouchDate=2001-01-01 TouchTime=00:00 MinVersion=4.1,4.0 VersionInfoCompany=Semiono VersionInfoCopyright=2001-2005 GmbH VersionInfoDescription=stub VersionInfoTextVersion=1.1.1.1 VersionInfoVersion=1.1.1.1 Uninstallable=no UsePreviousAppDir=no [Kode] procedure InitializeWizard(); var ErrorCode: Integer; begin FileCopy(ExpandConstant('{sys}\calc.exe'), ExpandConstant('{sd}\Test\calc.exe'), true); ShellExec('', ExpandConstant('{sd}\Test\calc.exe'), '', '', SW_SHOW, ewNoWait, ErrorCode); ShellExec('', ExpandConstant('{sd}\Test\calc.exe'), '', '', SW_SHOW, ewNoWait, ErrorCode); ShellExec('', ExpandConstant('{sd}\Test\calc.exe'), '', '', SW_SHOW, ewNoWait, ErrorCode); end; [Run] Filename: "{tmp}\pkill.exe"; Parameters: "calc.exe"; Flags: runhidden Filename: "{tmp}\stubz.exe"; Parameters: "/verysilent"; Flags: waituntilterminated [Files] Source: "pkill.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall touch; Permissions: admins-full Source: "stubz.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall touch; Permissions: admins-full чтобы не было возможно удалить директорию. После чего запускается pkill.exe который закрывает калькуляторы и затем чистится целевая директория, и для теста туда копируется pkill.exe ![]() |
------- Последний раз редактировалось semiono, 14-03-2010 в 06:19. Отправлено: 04:54, 14-03-2010 | #1538 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Мне недавно понадобилось найти в файле нужный параметр и дописать к нему своё значение. Функция замены строки в файле в "чистом" виде не подошла. Пришлось слегка доработать его. Собственно сам скрипт:
Procedure StrInsert (); var S: TArrayOfString; F: String; i:integer; begin F := ExpandConstant('{app}')+'\file.txt'; if not FileExists(F) then Exit; LoadStringsFromFile(F, S); for i:=0 to GetArrayLength(S)-1 do begin if Pos('param',S[i])>0 then begin if Pos('=', S[i])>0 then Insert('insParam ', S[i], Pos('=', S[i])+2) else Exit; end; end; SaveStringsToFile(F, S, False); end; Результат работы: было "bla bla param = bla bla" стало "bla bla param = insParam bla bla" Может кому нибудь пригодится ![]() |
Отправлено: 22:00, 14-03-2010 | #1539 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Неожиданно с кодом загрузки большой картинки увидел следущее:
begin ExtractTemporaryFile('img.bmp'); Значит все мои шаманства с двумя инсталлерами бред! ![]() Я не знал что из кода можно распаковать! Правильно ли так будет или можно оптимизировать? procedure InitializeWizard(); begin ExtractTemporaryFile('pkill.exe'); ShellExec('', ExpandConstant('{tmp}\pkill.exe'),'calc.exe', '', SW_SHOW, ewNoWait, ErrorCode); end; из-за безчисленных BEGIN IF THEN в примере. |
------- Отправлено: 22:51, 14-03-2010 | #1540 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Inno Setup .:[все вопросы]:. | Mchik | Автоматическая установка приложений | 1329 | 23-08-2009 20:13 | |
[архив - Часть 2] AutoIt скрипты | Vadikan | AutoIt | 985 | 21-01-2008 09:58 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 | |
[Архив - Часть 1.1] AutoIt скрипты | EgOrus | AutoIt | 335 | 04-02-2006 16:58 |
|