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

Компьютерный форум 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

 

Аватара для Krinkels

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


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

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


shidow
А ты не пробовал в Flags добавить postinstall?

-------
Рок моя честь, а моя честь моя жизнь. krinkels.org


Отправлено: 08:55, 23-03-2011 | #1121



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

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


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Интересная задача: есть функция:
Код: Выделить весь код
function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;
Но она доступна только на Юникод-версии компилятора. Вопрос: как-бы ее приделать к АНСИ-компилятору?

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 11:33, 23-03-2011 | #1122


Аватара для Krinkels

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


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

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


Лександер
Ну она у меня и в анси версии компилятора присутствует. Стоит версия от китайцев

-------
Рок моя честь, а моя честь моя жизнь. krinkels.org


Отправлено: 12:36, 23-03-2011 | #1123


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Krinkels, У меня тоже, но вызывает ошибку
А на Юникод - срабатывает, но мне главный скрипт под юникод не переделать - там километр кода уже
Возможное решение моей проблемы: Ссылка
Поможет кто-нибудь приделать это к этому скрипту?

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 23-03-2011 в 13:38.


Отправлено: 12:45, 23-03-2011 | #1124


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


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

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


Krinkels
Flags postinstall добавил но теперь такая ошибка
http://i18.fastpic.ru/big/2011/0323/...94710fa346.png
И еще один вопрос как сделать чтоб после установки игра не запускалась?

Отправлено: 16:10, 23-03-2011 | #1125


Аватара для Gnom_aka_Lexander

Ветеран


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

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


shidow, эта ошибка говорит о том, что по указанному пути нет файла, который нужно выполнить.
Цитата shidow:
как сделать чтоб после установки игра не запускалась? »
Убрать запуск игры из секции ран.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 17:08, 23-03-2011 | #1126


Ветеран


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

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


как вставить на первую страничку инсталятора картинку как здесь?

http://screendepo.com/image/109254

если что мой скрипт

читать дальше »
OutputDir=Setup
AppName=Crysis 2
AppVerName=Crysis 2
AppVersion=Crysis 2
AppPublisher=Torrent 4M
AppCopyright=Torrent 4M
DefaultDirName={pf}\Crysis 2
DefaultGroupName=Crysis 2
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=C:\Documents and Settings\Admin\Рабочий стол\341de00ccb0b6b53d1a2c81e5e0b8e55.bmp
WindowVisible=false
WindowShowCaption=false
WindowResizable=false
Compression=lzma/ultra
SolidCompression=true
DiskSpanning=yes
DiskSliceSize=1048576000
SlicesPerDisk=1
WizardSmallImageFile=C:\Documents and Settings\Admin\Рабочий стол\crysis\Crysis_2.bmp

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

[Messages]
DiskSpaceMBLabel=Требуется как минимум 6,20 Гб свободного дискового пространства.

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}

[Files]
Source: C:\Documents and Settings\Admin\Рабочий стол\button.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\Documents and Settings\Admin\Рабочий стол\LOGO.bmp; Flags: dontcopy solidbreak
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: C:\Documents and Settings\Admin\Рабочий стол\dc.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: C:\Documents and Settings\Admin\Рабочий стол\logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: D:\Crysis 2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

[Icons]
Name: {group}\Crysis 2; Filename: {app}\bin32\Crysis2Launcher.exe; WorkingDir: {app}\bin32
Name: {userdesktop}\Crysis 2; Filename: {app}\bin32\Crysis2Launcher.exe; WorkingDir: {app}\bin32; Tasks: desktopicon
Name: {group}\{cm:UninstallProgram,Crysis 2}; Filename: {uninstallexe}

[Run]
Description: {cm:LaunchProgram, Crysis 2}; Filename: {app}\bin32\Crysis2Launcher.exe; WorkingDir: {app}\bin32; Flags: nowait postinstall skipifsilent unchecked
Filename: {win}\regedit.exe; Parameters: /s {tmp}\dc.reg; StatusMsg: Вносим изменения в реестр ...; Flags: waituntilterminated runasoriginaluser

[UninstallDelete]
Type: filesandordirs; Name: {app}

[code]
var
BitmapImage1: TBitmapImage;

procedure InitializeWizard();
begin
{ BitmapImage1 }
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Name := 'BitmapImage1';
Parent := WizardForm;
Left := ScaleX(0);
Top := ScaleY(314);
Width := ScaleX(241);
Height := ScaleY(100);
ExtractTemporaryFile('LOGO.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\LOGO.bmp'));
end;
end;

var
lbl1, lbl2: TLabel;
txt1, txt2: string;
i: Integer;
tmr1: TTimer;

procedure tmr1Timer(Sender: TObject);
begin
tmr1.Enabled:= False;

txt1:= WizardForm.WelcomeLabel1.Caption;
txt2:= WizardForm.WelcomeLabel2.Caption;

lbl1.Caption:= '';
for i:= 1 to Length(txt1) do begin
if Application.Terminated then Break; // контроль закрытия приложения и выход из цикла
lbl1.Caption:= lbl1.Caption + txt1[i];
Application.ProcessMessages;
Sleep(100); // время задержки между показом букв
end;

lbl2.Caption:= '';
for i:= 1 to Length(txt2) do begin
if Application.Terminated then Break; // контроль закрытия приложения и выход из цикла
lbl2.Caption:= lbl2.Caption + txt2[i];
Application.ProcessMessages;
Sleep(60); // время задержки между показом букв
end;
end;

procedure CreateComponents;
begin
// скрываем стандартные Label'ы
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;

// задаём свои Label'ы
lbl1:= TLabel.Create(WizardForm);
with lbl1 do begin
Left:= WizardForm.WelcomeLabel1.Left;
Top:= WizardForm.WelcomeLabel1.Top;
Width:= WizardForm.WelcomeLabel1.Width;
Height:= WizardForm.WelcomeLabel1.Height;
AutoSize:= WizardForm.WelcomeLabel1.AutoSize;
WordWrap:= WizardForm.WelcomeLabel1.WordWrap;
Font.Style:= WizardForm.WelcomeLabel1.Font.Style;
Font.Size:= WizardForm.WelcomeLabel1.Font.Size;
Font.Color:= WizardForm.WelcomeLabel1.Font.Color;
Transparent:= True;
Caption:= '';
Parent:= WizardForm.WelcomePage;
end;

lbl2:=TLabel.Create(WizardForm);
with lbl2 do begin
Left:= WizardForm.WelcomeLabel2.Left;
Top:= WizardForm.WelcomeLabel2.Top;
Width:= WizardForm.WelcomeLabel2.Width;
Height:= WizardForm.WelcomeLabel2.Height;
AutoSize:= WizardForm.WelcomeLabel2.AutoSize;
WordWrap:= WizardForm.WelcomeLabel2.WordWrap;
Font.Style:= WizardForm.WelcomeLabel2.Font.Style;
Font.Size:= WizardForm.WelcomeLabel2.Font.Size;
Font.Color:= WizardForm.WelcomeLabel2.Font.Color;
Transparent:= True;
Caption:= '';
Parent:= WizardForm.WelcomePage;
end;

tmr1:= TTimer.Create(WizardForm);
with tmr1 do begin
Interval:= 500; // время задержки перед началом показа текста
OnTimer:= @tmr1Timer;
end;
end;

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

function InitializeSetup:boolean;
begin
ExtractTemporaryFile('dc.reg');
ExtractTemporaryFile('steam.cjstyles');
LoadSkin(ExpandConstant('{tmp}')+'\steam.cjstyles', '');
Result:=True;
end;

procedure DeinitializeSetup;
begin
ShowWindow(WizardForm.Handle,0);
UnloadSkin();
end;

function GetLogicalDrives: DWORD; external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(lpRootPathName: PChar): Cardinal; external 'GetDriveTypeA@kernel32.dll stdcall';

const
DRIVE_FIXED = 3;

function NoSD(s: string): string;
var
x, bit, i: Integer;
tp: Cardinal;
sd: string;
begin
sd:= ExpandConstant('{sd}');
Result:= sd;
// Вызываем функцию WinAPI
// Функция возвращает битовую маску установленных логических дисков.
// Бит 0 определяет наличие диска А:, бит 1 - диска B и т.д.
x:= GetLogicalDrives;
if x <> 0 then
// цикл по полученным битам переменной X
for i:= 1 to 64 do
begin
// Накладываем битовую маску для выделения бита с поряковым номером 0
bit:= x and 1;
// нашли логический диск...
if bit = 1 then
begin
// определяем тип логического диска
tp:= GetDriveType(PChar(Chr(64 + i) + ':'));
if tp = DRIVE_FIXED then
// если диск не является системным
if Chr(64 + i) <> Copy(sd, 1, 1) then
begin
Result:= Chr(64 + i) + ':';
Break;
end;
end;
// побитовый сдвиг вправо
x:= x shr 1;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.Font.Name:= 'Georgia';
if CurPageID = wpInfoBefore then WizardForm.Font.Name:= 'Georgia';
if CurPageID = wpLicense then WizardForm.Font.Name:= 'Georgia';
WizardForm.Font.Style:=[fsBold, fsItalic]
end;


и ещё искал но не нашел как сделать чтобы при нажатии на лого открывался сайт?

Последний раз редактировалось insombia, 23-03-2011 в 17:45.


Отправлено: 17:26, 23-03-2011 | #1127


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


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

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


Лександер, так в том то и проблема что все правильно написано

а за что вот это отвечвет
WorkingDir: "{app}\Redistributable";

Последний раз редактировалось shidow, 23-03-2011 в 17:46.


Отправлено: 17:29, 23-03-2011 | #1128


Аватара для Gnom_aka_Lexander

Ветеран


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

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


shidow, WorkingDir - рабочая папка. А ты файлы положил туда, откуда их запускаеш?
insombia, поройся здесь , вроде были оба нужных тебе примера.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

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

Отправлено: 17:52, 23-03-2011 | #1129


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


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

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


та же фигня уже не знаю что пробовать(

Отправлено: 18:11, 23-03-2011 | #1130



Компьютерный форум 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




 
Переход