|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
|
Отправлено: 08:52, 02-02-2015 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Nordek, спасибо за ответ.
Я так понял, что всё что я "натягал" из реестра в сценарий скрипту и даром не нунжно? Удалил всё, что шло ниже [Registry]. Сделал инсталлятор и установил с него игру. При попытке удаления выскакивает та же ошибка. |
|
Последний раз редактировалось бювет, 24-04-2015 в 16:34. Отправлено: 15:38, 24-04-2015 | #541 |
|
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата бювет:
Например:
У вас имеются:
В содержится информация о настройках, которая в будущем может пригодиться (Зависит от возможностей): Может быть как добавлено содержимое в скрипт, так и нет (т.к в другом случае информация о параметрах может быть помещена в конфигурационный файл ".ini"). В содержится информация о приложении, контакты и пр. В тоже время, благодаря информации которая содержится в "MPC-HC_is1", позволит без труда деинсталлировать приложение. Т.е для деинсталляции, достаточно такой информации: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MPC-HC_is1] "DisplayIcon"="C:\\Program Files\\MPC-HC\\mpc-hc.exe" "DisplayName"="Media Player Classic Home Cinema" "UninstallString"="C:\\Program Files\\MPC-HC\\uninsall.exe" [Setup] AppId=ID Приложения AppVersion=Версия AppPublisher=Издатель AppPublisherURL=Сайт создателя AppSupportURL=Поддержка AppUpdatesURL=Обновления UninstallDisplayName=Имя UninstallDisplayIcon=Значок,Индекс значка AppModifyPath=Изменения AppComments=Комментарии AppContact=Контакты AppReadmeFile=Файл Readme AppSupportPhone=Телефон не нужно. В некотором случае, добавление может стать ошибочной или не желательной (например в случае как 32-х и 64-х битных системах, одна из информации может являться неверной информацией (мусором)). Цитата бювет:
[Files]
Source: C:\Program Files (x86)\GothicIII\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Вы компилируете напрямую с "C:\Program Files (x86)\GothicIII" В инсталляторе прописано "C:\Program Files (x86)\GothicIII\*" + Обрабатовать подкаталоги + Создавать все подкаталоги: Это значит, что в инсталлятор входит всё содержимое. Вы не учли одно "но", то что в инсталлятор не должны входить файлы "unins000.dat" и "unins000.exe". Чтоб не путаться, скопируйте содержимое: "C:\Program Files (x86)\GothicIII" в другое удобное место. Например:
Зайдите в "C:\Program Files (x86)" и скопируйте от туда папку "GothicIII" на локальный диск "D:\" т.е чтоб получилось "D:\GothicIII"
Затем зайдите в "D:\GothicIII" и в папке "GothicIII" удалите "unins000.dat" и "unins000.exe". В скрипте, в секции [Files] замените: Source: C:\Program Files (x86)\GothicIII\Gothic3.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\Program Files (x86)\GothicIII\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Строка вида C:\Program Files (x86)\GothicIII\Gothic3.exe вам не нужна, потому-что у вас и так входит всё содержимое каталога. |
||
|
Последний раз редактировалось Nordek, 25-04-2015 в 02:41. Отправлено: 23:44, 24-04-2015 | #542 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Nordek, спасибо огромное! Изумительный Вы человек! Вместо того, что бы просто кинуть пару строк кода ламеру с подсказкой куда их вставить, Вы пошагово разжовываете в чём моя ошибка (как хороший преподаватель), объясняете где я был не прав... О, боженька ты мой! В Вас толерантности на десять человек! Я просто счастлив, что попал на этот форум даже из-за того, что есть возможность пообщаться с такими людьми! Ещё раз огромное спасибо.
|
|
Последний раз редактировалось бювет, 25-04-2015 в 07:18. Отправлено: 06:59, 25-04-2015 | #543 |
|
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите пожалуйста можно-ли каким-то образом перенести часть названия (текста) задачи на вторую строку.
Допустим (произвольное название) [Tasks] Name: zadacha1; Description: Установить/Обновить Название программы Версия программы (от: число месяц год) Хочу чтобы на странице инсталлятора название задачи выглядело следующим образом: Установить/Обновить Название программы Версия программы (от: число месяц год) Отбивать строку пробелами как-то не серьёзно (каждый раз приходится подбирать заново при наличии/отсутствии прокрутки в задачах или при изменении названия) Есть какой-нибудь способ типа +#13#10+ или что-то типа того? |
|
Отправлено: 10:31, 25-04-2015 | #544 |
|
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата palsn2000:
|
|
|
Отправлено: 14:10, 25-04-2015 | #545 |
|
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Всем привет!
Подскажите, пожалуйста, нубу, пример кода (скрипта) на установку доп. компонентов (DirectX, Visual C++) ? Сойдёт либо тихая установка, либо в конце шла - без разницы. Заранее Большое Спасибо! |
|
Отправлено: 12:16, 26-04-2015 | #546 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать OldGamer, Вот здесь посмотрите Ссылка
еще такое есть Скрытый текст
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: icons\Mp; Description: Создать ярлык на рабочем столе для одиночной игры (Mp)
Name: soft; Description: Дополнительные програмное обеспечение
Name: soft\directx; Description: Обновить DirectX
Name: soft\VCCheck; Description: Установить Microsoft Visual C++
Name: soft\oalinst; Description: Установить Open AL
Name: soft\PhysX; Description: Установить Nvidia PhysX
Name: soft\ubisoft_Game_Launcher; Description: Установить Ubisoft Game Launcher
Name: icons; Description: Дополнительные значки
Name: icons\sp; Description: Создать ярлык на рабочем столе для одиночной игры (Sp)
Name: icons\Mp; Description: Создать ярлык на рабочем столе для одиночной игры (Mp)
[Run]
Filename: {src}\DirectX\DXSETUP.exe; Parameters: /silent; StatusMsg: Обновление DirectX...; Tasks: soft\directx; Flags: waituntilterminated
Filename: {src}\vcredist\vcredist_x86.exe; Parameters: /q; StatusMsg: Установка Microsoft Visual C++ ...; Tasks: soft\VCCheck; Flags: runhidden waituntilterminated
Filename: {src}\Redist\oalinst.exe; Parameters: /silent; MinVersion: 4.0,5.0; StatusMsg: Идет установка дополнительных программ...; Tasks: soft\oalinst; Flags: waituntilterminated
Filename: {src}\PhysX_9.10.0224_SystemSoftware.exe; Parameters: /quiet; MinVersion: 4.0,5.0; StatusMsg: Идет установка Nvidia PhysX; Tasks: soft\PhysX; Flags: waituntilterminated
Filename: {src}\GameLauncher\UbisoftGameLauncherInstaller.exe; Parameters: /silent; MinVersion: 4.0,5.0; StatusMsg: Идет установка Ubisoft Game Launcher...; Tasks: soft\Ubisoft_Game_Launcher; Flags: waituntilterminated
|
|
------- Последний раз редактировалось Dodakaedr, 26-04-2015 в 19:12. Отправлено: 14:07, 26-04-2015 | #547 |
|
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Добрый день, народ!
Подскажите пожалуйста, Inno Setup юзаю 3-ий день и потому не совсем втыкаю как и что, поэтому прошу помощи. Задача такая - нужен установщик и апдейтер в одном. То есть если приложение не установлено - идет установка, если установлено, то соответственно обновление. Причем при обновлении нужно копировать новый екзе, и после этого запускать второй екзешник, который будет делать обновление скриптов в базе. После всего этого закрывать установщик. Записывать что-то в регистр не обязательно. Как это сделать? Я нашел код сравнивающий версии файлов, впихнул его в раздел Code, но что делать дальше ума не приложу, да к тому же компилятор ругается на строку 47. ; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
AppId={{1419C2B5-9C27-42DE-9424-9EB8FEEF4C3B}
AppName=MyApp
AppVersion=1.0.0.3
AppPublisher=Студия "MyApp"
DefaultDirName={pf}\MyApp
DefaultGroupName=MyApp
LicenseFile=C:\CVSWork\MyApp\license.txt
OutputDir=C:\CVSWork\MyApp\Out
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: "C:\CVSWork\MyApp\ShopUchet.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\CVSWork\MyApp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
{Code}
type
VersionState = (vsNotInstalled, vsOlderInstalled, vsSameInstalled, vsNewerInstalled);
function GetVersionState(): VersionState;
var
ExePath: String;
VersionMS, VersionLS: Cardinal;
begin
ExePath := ExpandConstant('{app}\MyApp.exe');
if GetVersionNumbers(ExePath, VersionMS, VersionLS) then begin
if (VersionMS < {#VersionMS}) or ((VersionMS = {#VersionMS}) and (VersionLS < {#VersionLS})) then begin
Result := vsOlderInstalled;
end else if (VersionMS > {#VersionMS}) or ((VersionMS = {#VersionMS}) and (VersionLS > {#VersionLS})) then begin
Result := vsNewerInstalled;
end else begin
Result := vsSameInstalled;
end;
end else begin
Result := vsNotInstalled;
end;
end;
function OnNextButtonClick(CurPageId: Integer): Boolean;
begin
Result := True;
if CurPageId = wpSelectDir then begin
if GetVersionState() = vsNewerInstalled then begin
Result := SuppressibleMsgBox('A newer version of the application is already installed. Are you sure you want to '
+ 'downgrade to {#MyAppVersion}?', mbConfirmation, MB_YESNO, IDYES) = IDYES;
end;
end;
end;
[Icons]
Name: "{group}\ShopUchet"; Filename: "{app}\MyApp.exe"
Name: "{commondesktop}\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\MyApp"; Filename: "{app}\MyApp.exe"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\MyApp.exe"; Description: "{cm:LaunchProgram,MyApp}"; Flags: nowait postinstall skipifsilent
|
|
Отправлено: 11:58, 27-04-2015 | #548 |
|
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Цитата aidynchik:
Перед секцией [Setup] (ну или же в любом месте, где вам угодно), прописываете: З.ы. это директивы препроцессора, встроенного в компилятор. Не все компиляторы имеют его. |
|
|
------- Отправлено: 13:12, 27-04-2015 | #549 |
|
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата:
Т.к. установка проходит вполне гладко, и пошагово компилятор туда не заходит |
|
|
Отправлено: 06:27, 28-04-2015 | #550 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
| Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
| Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
| Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
| Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
|