Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Пользователь


Сообщения: 81
Благодарности: 4

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста как сделать деинсталятор игры через инно. Просто родной не хочет работать?
Лучше если скрипт будет удалять игру полностью.
Заранее спасибо.

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 22:45, 21-12-2010 | #181



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для nik1967

Старожил


Сообщения: 440
Благодарности: 251

Профиль | Сайт | Отправить PM | Цитировать


actavir,
Что значит "родной не хочет работать?" Попробуй добавить в скрипт до секции [_Code] такие строчки:
Код: Выделить весь код
[UninstallDelete]
Type: filesandordirs; Name: {app}

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 00:31, 22-12-2010 | #182


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата nik1967:
Попробуй добавить в скрипт до секции [_Code] »
помоему порядок расположения секций в скрипте не имеет значения, у инно жеский порядок выполнения секций независимо от их местоположения.
Цитата actavir:
Просто родной не хочет работать »
вы просто из папки Source удалили unins*.exe?

Цитата Raf96:
как через Inno Setup реализовать автоматическую активацию игр »
Активация игры - это или запись в реестре или файлы в users... Соответсвенно вылавливаем эту активизацию через RegShot.

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 09:44, 22-12-2010 | #183


Новый участник


Сообщения: 2
Благодарности: 1

Профиль | Отправить PM | Цитировать


Помогите, как сделать так, чтобы программа Filename: "{src}\programm.exe"; запускалась не в конце установки, а на второй странице??

Отправлено: 12:35, 22-12-2010 | #184


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
Активация игры - это или запись в реестре или файлы в users... Соответсвенно вылавливаем эту активизацию через RegShot. »
да но тогда зачем делать выбор активировать игру или нет если можно молча всё сделать

Отправлено: 14:13, 22-12-2010 | #185


Пользователь


Сообщения: 81
Благодарности: 4

Профиль | Отправить PM | Цитировать


Можете скинуть полную версию скрипта на удаление. У меня где то ошибка но не могу найти где!!!

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 14:15, 22-12-2010 | #186


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата actavir:
Можете скинуть полную версию скрипта на удаление »
скрипт на удаление он в самом скрипте - просто указываете флаги соответствующие.
Цитата actavir:
У меня где то ошибка но не могу найти где »
ну давайте скрипт, кстати вы не ответили на мой вопрос - файл unins*.exe в папке источника есть?

Цитата aerh:
Помогите, как сделать так, чтобы программа Filename: "{src}\programm.exe"; запускалась не в конце установки, а на второй странице »
второй странице это какой? ввод пароля? выбор компонентов? выбор папки? страницы в инно отключаемые и вторая страница у всех разная.
В общем пишу для окна компонентов, а там уже подменить на требуемое просто
Код: Выделить весь код
[_Code]
procedure CurPageChanged(CurPageID: Integer);
var res:integer;
If CurPageID=wpSelectComponents then
begin
Exec(ExpandConstant('{src}\programm.exe'), ' параметры ',ExpandConstant('{src}'),SW_HIDE,ewWaitUntilTerminated,res);
end;
end;
CurPageID может принимать значения: wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:06, 22-12-2010 | #187


Пользователь


Сообщения: 81
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
ну давайте скрипт, кстати вы не ответили на мой вопрос - файл unins*.exe в папке источника есть? »
нет

Код: Выделить весь код
[Setup]
AppName=Александр
AppVerName=Александр (2010)
DefaultDirName={pf}\Alexander
DefaultGroupName=Александр
AllowNoIcons=true
OutputBaseFilename=Alexander Setup
OutputDir=S:\[REPACKs]\Alexander\


UsePreviousAppDir=false
DirExistsWarning=no
ShowLanguageDialog=no

Uninstallable = yes
UninstallDisplayIcon=D:\alexander.ico
UninstallIconFile=D:\alexander.ico
UninstallFilesDir={app}
UninstallLogMode=append
UninstallStyle=modern



Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64
DiskSpanning=true
DiskSliceSize=1048576000
WizardImageFile=D:\image.bmp
WizardSmallImageFile=D:\imagesmall.bmp

SetupIconFile=D:\alexander.ico


[Files]
;Source: *.arc; DestDir: {app}; Flags: nocompression
Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy deleteafterinstall
Source: compiler:InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy

[Icons]
Name: "{group}\Играть в Александр"; Filename: "{app}\dmln.exe"; WorkingDir: "{app}";
Name: "{group}\Все файлы для игр"; Filename: "http://www.play-game-ru.ucoz.ru/"; WorkingDir: "http://";
Name: "{group}\Удалить Александр"; Filename: "{uninstallexe}"; WorkingDir: "{app}";
Name: "{userdesktop}\Александр"; Filename: "{app}\dmln.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Все файлы для игр"; Filename: "http://www.play-game-ru.ucoz.ru/"; WorkingDir: "http://";

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl


[UninstallDelete]
Type: filesandordirs; Name: {app}
это только нужная часть там внизу ещё есть рашифровка фриакра и установка директа
вот чёто не получается ничё

и ещё вопрос как сделать так что бы после окончания установки рабочий стол автоматически обновлялся так как ярлык создаваемый перед распаковкой является безликим?

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Последний раз редактировалось actavir, 22-12-2010 в 16:48.


Отправлено: 16:30, 22-12-2010 | #188


Аватара для gur74

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спецы помогите пожалуйста начинающему не проигрывается музыка вот скрипт:

Код: Выделить весь код
[Setup]
AppName=LikeRusXP Localization
AppVerName={cm:NameAndVersion,LikeRusXP Localization,6.01.12}
AppVersion=6.01.12
DefaultDirName={pf}\LikeRusXP Localization
DefaultGroupName=LikeRusXP Localization
OutputBaseFilename=LikeRusXP 6.01.12
Compression=lzma
LicenseFile=embedded\License.txt
InfoBeforeFile=embedded\InfoBefore.txt
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
SetupIconFile={tmp}\MAINICON.ico
 
[Files]
Source: "{tmp}\isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "{tmp}\Splash.png"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "{app}\bass.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "{app}\sound.mp3"; DestDir: "{tmp}"; Flags: dontcopy
Source: "{tmp}\ISSkin.dll"; DestDir: "{app}"; Flags: dontcopy
Source: "{tmp}\Codejock.cjstyles"; DestDir: "{app}"; Flags: dontcopy
Source: "{app}\LikeRusXP.exe"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\limage.exe"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\LikeRusXP.chm"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\License.txt"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; 
Source: "{app}\Store\elibrary.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\lresdumper.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\sl3core.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\lires.exe"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\rb\lresdumper.dll"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\rb\ResBinder.exe"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\rb\readme.txt"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\rb\english.uil"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 
Source: "{app}\Store\rb\russian.uil"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion 

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; MinVersion: 4.1.2222,5.0; 
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; MinVersion: 4.1.2222,5.0;

[Icons]
Name: "{group}\LikeRusXP 6.01.12"; Filename: "{app}\LikeRusXP.exe"; MinVersion: 4.1.2222,5.0; 
Name: "{group}\{cm:ProgramOnTheWeb,LikeRusXP 6.01.12}"; Filename: "http://likerusxp.ru/"; MinVersion: 4.1.2222,5.0; 
Name: "{group}\{cm:UninstallProgram,LikeRusXP 6.01.12}"; Filename: "{uninstallexe}"; MinVersion: 4.1.2222,5.0; 
Name: "{commondesktop}\LikeRusXP 6.01.12"; Filename: "{app}\LikeRusXP.exe"; Tasks: "desktopicon"; MinVersion: 4.1.2222,5.0; 
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\LikeRusXP"; Filename: "{app}\LikeRusXP.exe"; Tasks: "quicklaunchicon"; MinVersion: 4.1.2222,5.0;

////////////////////// Skin //////////////////////

[Code_]
#ifdef UNICODE
    #define PStr "AnsiString"
#else
    #define PStr "String"
#endif
 
procedure LoadSkin(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
 external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinUninst(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
 external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkin();
 external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkinUninst();
 external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
 external 'ShowWindow@user32.dll stdcall';
 
function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('Codejock.cjstyles');
  CreateDir(ExpandConstant('{sd}\ISSkin'));
  FileCopy(ExpandConstant('{tmp}\Codejock.cjstyles'), ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), True);
  LoadSkin(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), 'NormalBlack.ini');
 
  Result := True;
end;
 
procedure DeinitializeSetup();
begin
    ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
    UnloadSkin();
    DeleteFile(ExpandConstant('{sd}\ISSkin\isskin.dll'));
    DeleteFile(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'));
    RemoveDir(ExpandConstant('{sd}\ISSkin'));
end;
 
function InitializeUninstall(): Boolean;
begin
  FileCopy(ExpandConstant('{app}\isskin.dll'),
                 ExpandConstant('{tmp}\isskin.dll'), True);
  FileCopy(ExpandConstant('{app}\Codejock.cjstyles'),
             ExpandConstant('{tmp}\Codejock.cjstyles'), True);
 
    LoadSkinUninst(ExpandConstant('{tmp}\Codejock.cjstyles'), 'NormalBlack.ini');
    Result := True;
end;
 
procedure DeinitializeUninstall();
begin
    UnloadSkinUninst();
end;

procedure CurStepChanged(CurStep: TSetupStep); 
begin 
if CurStep = ssDone then 
MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK); 
end;

////////////////////// Musik //////////////////////

[Code_]
//большее указание смотрите в дельфийских исходниках в архиве с библиотекой
const
  BASS_SAMPLE_LOOP        = 4;   //повторение

type
  HSTREAM = DWORD;      //тип звукового потока

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function  BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function  BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

procedure InitializeWizard2();
var
  Name1: string;
 	i: Integer;
begin
   ExtractTemporaryFile('bass.dll');
     ExtractTemporaryFile('sound.mp3');
  if BASS_Init(-1, 44100, 0, 0, 0) then
begin
  BASS_Start();
   Name1:=ExpandConstant('{tmp}\sound.mp3');
    i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
  if i <> 0 then
	begin
  BASS_ChannelPlay(i, True);
end;
end;
end;
procedure DeInitializeSetup2();
begin
BASS_Stop(); //нужно для остановки проигрывания
BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;

procedure CurStepChanged2(CurStep: TSetupStep); 
begin 
if CurStep = ssDone then 
MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK); 
end;

////////////////////// Splash //////////////////////

[Code_]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';

procedure InitializeWizard;
begin
  ExtractTemporaryFile('Splash.png');
  ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False,$FFFFFF,10);
end;

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Run]
Filename: "{app}\LikeRusXP.exe"; Description: "{cm:LaunchProgram,LikeRusXP}"; Flags: nowait postinstall skipifsilent

Последний раз редактировалось gur74, 22-12-2010 в 20:03.


Отправлено: 17:08, 22-12-2010 | #189


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Цитата actavir:
вот чёто не получается ничё »
что конкретно? у вас в скрипте прогу распаковывает внешний распаковщик, так что при удалении надо сносить папку {app} как правильно подсказали через [UninstallDelete]
можно еще через код сносить папки
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usDone then RemoveDir(ExpandConstant('{app}'));
end;
Цитата actavir:
как сделать так что бы после окончания установки рабочий стол автоматически обновлялся »
[Setup]
ChangesAssociations=true
ChangesEnvironment=true
Цитата actavir:
ярлык создаваемый перед распаковкой является безликим »
[Icons]
Name: "{group}\Играть в Александр"; Filename: "{app}\dmln.exe"; WorkingDir: "{app}"; IconFilename: "{app}\dmln.exe"; IconIndex: 1

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:32, 22-12-2010 | #190



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход