» Inno Setup (создание инсталяционных пакетов)
Подскажите как выделить строку из ини файла и присвоить переменной первые 2 символа этой строки ?
Добавлено:
Почему если я пишу вот так
[Files]
Source: G:\Модуль\*.ini; DestDir: {app}; Flags: recursesubdirs createallsubdirs sortfilesbyextension ignoreversion; AfterInstall: Boxname
то процедура Boxname выполняется каждый раз после распаковки КАЖДОГО файла ? Как это убрать ? Мне нужно, что бы она выполнилась 1 раз после распаковки ВСЕХ файлов и всё.
Добавлено:
Почему если я пишу вот так
[Files]
Source: G:\Модуль\*.ini; DestDir: {app}; Flags: recursesubdirs createallsubdirs sortfilesbyextension ignoreversion; AfterInstall: Boxname
то процедура Boxname выполняется каждый раз после распаковки КАЖДОГО файла ? Как это убрать ? Мне нужно, что бы она выполнилась 1 раз после распаковки ВСЕХ файлов и всё.
Перезалейте, пожалуйста, руководства!
Скажите, пожалуйста, как в качестве пути вставить имя каталога, которое пользователь ввел для установки?
То есть, пользователь выбирает ставить программы в %ProgramFiles%\<b>Program_test</b>.
Программа должна скопировать часть файлов в эту папку, а часть в {userappdata}\<b>Program_test</b>. Как это осуществить?
Скажите, пожалуйста, как в качестве пути вставить имя каталога, которое пользователь ввел для установки?
То есть, пользователь выбирает ставить программы в %ProgramFiles%\<b>Program_test</b>.
Программа должна скопировать часть файлов в эту папку, а часть в {userappdata}\<b>Program_test</b>. Как это осуществить?
NightW0lf
Цитата:
+1 Тоже этого хочу но в его коде это не получается.
Genri
ПЛЗ добавь текст с возможностью в дальнейшем редактировать размер страницы, и если реально сделай так чтобы прогресс-бар выполнялся одновременно с Splash-рисунком.
Цитата:
А можно добавить текст в этот прогресс бар?
+1 Тоже этого хочу но в его коде это не получается.
Genri
ПЛЗ добавь текст с возможностью в дальнейшем редактировать размер страницы, и если реально сделай так чтобы прогресс-бар выполнялся одновременно с Splash-рисунком.
NightW0lf
Цитата:
Добавлено:
Sampron
Цитата:
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes
[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion
Source: WizModernSmallImage.bmp; Flags: dontcopy
[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(Form);
BitmapImage.Left := ScaleX(8);
BitmapImage.Top := ScaleY(8);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := Form;
StaticText := TNewStaticText.Create(Form);
StaticText.Top := BitmapImage.Top;
StaticText.Left := BitmapImage.Left + BitmapImage.Width + ScaleX(8)
StaticText.Caption := 'Inno Setup is a free installer for Windows programs.' +
+ #10#13 + 'Support for all versions of Windows in use today';
StaticText.AutoSize := True;
StaticText.Parent := Form;
CancelButton := TButton.Create(Form);
CancelButton.Parent := Form;
CancelButton.Width := ScaleX(75);
CancelButton.Height := ScaleY(23);
CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption := 'Cancel';
CancelButton.ModalResult := mrCancel;
CancelButton.Cancel := True;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Height := CancelButton.Height - ScaleY(8);
Width := Form.Width - ScaleX(128);
Top := CancelButton.Top;
Left := BitmapImage.Left;
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.ActiveControl := CancelButton;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Form.Repaint;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;
Цитата:
А можно добавить текст в этот прогресс бар?-- c Inno Setup идет такой замечательный пример, как CodeClasses.iss. Даже беглого взгляда на него достаточно, чтобы дать ответ на твой вопрос.
Добавлено:
Sampron
Цитата:
Тоже этого хочу но в его коде это не получается.-- хм.. даже представить не могу, что надо сделать, чтобы не получилось.
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes
[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion
Source: WizModernSmallImage.bmp; Flags: dontcopy
[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(Form);
BitmapImage.Left := ScaleX(8);
BitmapImage.Top := ScaleY(8);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := Form;
StaticText := TNewStaticText.Create(Form);
StaticText.Top := BitmapImage.Top;
StaticText.Left := BitmapImage.Left + BitmapImage.Width + ScaleX(8)
StaticText.Caption := 'Inno Setup is a free installer for Windows programs.' +
+ #10#13 + 'Support for all versions of Windows in use today';
StaticText.AutoSize := True;
StaticText.Parent := Form;
CancelButton := TButton.Create(Form);
CancelButton.Parent := Form;
CancelButton.Width := ScaleX(75);
CancelButton.Height := ScaleY(23);
CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption := 'Cancel';
CancelButton.ModalResult := mrCancel;
CancelButton.Cancel := True;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Height := CancelButton.Height - ScaleY(8);
Width := Form.Width - ScaleX(128);
Top := CancelButton.Top;
Left := BitmapImage.Left;
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.ActiveControl := CancelButton;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Form.Repaint;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;
Цитата:
Перезалейте, пожалуйста, руководства!
Скажите, пожалуйста, как в качестве пути вставить имя каталога, которое пользователь ввел для установки?
То есть, пользователь выбирает ставить программы в %ProgramFiles%\<b>Program_test</b>.
Программа должна скопировать часть файлов в эту папку, а часть в {userappdata}\<b>Program_test</b>. Как это осуществить?
Дополнение: это не дефолтовая директория, но для дефолтовой тоже должно работать....
2. - Потом в одном из скопированных в аппдата фалов (ини) надо поменять значения некоторых параметром. Как там прописывать пути?
XuM -- слегка глянул. все-таки работает. но есть глюк (пока не разобрался) - модифай работает только при выборочной установке. т.е. если ставить по полной - при модифай все анчекед. похоже это не твой баг, а UninsHs.exe. будет время - повожусь.
Мдя. Хоть бы послали куда-нибудь...
Serge2005 -- думаю, сделать можно, но не нужно. ИМХО более правильно, в {userappdata} иметь фолдер с именем программы, а не именем папки, куда программа установлена. Иначе могут быть проблемы. Например, юзер установит программу в папку ХХХ, которой нет в ProgramFiles, но есть в userappdata
Genri
СУПЕР!!! ОГРОМНОЕ СПАСИБО!!!
Теперь про InstallShield можно забыть, когда всю красоту можно реализовать в inno, с помощью Лучших на форуме
СУПЕР!!! ОГРОМНОЕ СПАСИБО!!!
Теперь про InstallShield можно забыть, когда всю красоту можно реализовать в inno, с помощью Лучших на форуме
Genri
Можно ли в Page.CheckListBox прикрутить горизонтальный скрол? А то текст не умещается, и некрасиво смотрится когда длинные названия.
Можно ли в Page.CheckListBox прикрутить горизонтальный скрол? А то текст не умещается, и некрасиво смотрится когда длинные названия.
BAPK -- посмотри [more=здесь]
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
[ISSI]
#define ISSI_Russian
#define ISSI_Russian "C:\Temp\Настройки.rtf"
#define ISSI_LicensePrint
#define ISSI_Russian
#define ISSI_About "{cm:issiAbout}"
#define ISSI_About "NameAndVersion"
#define ISSI_AppVersion "0.0.5.1"
#define ISSI_SplashScreen "C:\ISSI\issi_example_Images\issi_800x600.bmp"
#define ISSI_SplashScreen_T 2
#define ISSI_SplashScreen_X 500
#define ISSI_SplashScreen_Y 300
#define ISSI_Splash_Corner 100
#define ISSI_URL "http://infofree.ru/forum/showthread.php?t=25896"
#define ISSI_UrlText "Помощь и настройка"
[Setup]
AppName=ApexDC++ (InfoFree Hub)
AppVerName=ApexDC++ (InfoFree Hub)
AppPublisher=Infofree, Inc.
AppPublisherURL=http://infofree.ru
AppSupportURL=http://infofree.ru/forum/showthread.php?t=25896
AppUpdatesURL=http://infofree.ru/forum/downloads.php?do=file&id=123
DefaultDirName={pf}\ApexDC++(InfoFree Hub)
DefaultGroupName=ApexDC++ (InfoFree Hub)
AllowNoIcons=true
;OutputDir=C:\Temp
OutputBaseFilename=ApexDC++(InfoFree Hub)
;SetupIconFile=C:\Temp\1.ico
Compression=lzma
SolidCompression=true
VersionInfoVersion=0.0.5.1
VersionInfoCopyright=BAPK
;WizardImageFile=C:\Program Files\Inno Setup 5\Modern\SetupModern21.bmp
;WizardSmallImageFile=C:\Program Files\Inno Setup 5\Modern\Small\SetupModernSmall16.bmp
AppID={{6EF43DCA-3877-41AC-819A-FE4B027968F6}
ShowLanguageDialog=no
AppVersion=0.0.5.1
UninstallDisplayName=ApexDC++(InfoFree Hub)
VersionInfoTextVersion=Beta 5
DisableStartupPrompt=true
FlatComponentsList=false
VersionInfoCompany=infofree.ru
VersionInfoDescription=Тестовая версия
AppCopyright=BAPK
TimeStampsInUTC=true
LicenseFile=D:\APP\Inno Setup 519\Examples\Readme.txt
[Messages]
BeveledLabel=- Packaged by BAPK
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: rus; Description: Русификация; GroupDescription: Только если программа устанавливается в каталог по умолчанию:; Flags: unchecked
[Files]
Source: Files\*; DestDir: {app}; Flags: ignoreversion
Source: Files\*; DestDir: {app}\EmoPacks\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}\Settings\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}\Themes\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}
Source: Files\*; DestDir: {app}\Settings\; Flags: onlyifdestfileexists overwritereadonly; Tasks: rus
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Convex_Olympus
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Skynet
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Kabinet
[INI]
Filename: {app}\ISTool.url; Section: InternetShortcut; Key: URL; String: http://infofree.ru/forum/showthread.php?t=25896/; Tasks: ; Languages:
[Icons]
Name: {group}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe
Name: {group}\{cm:UninstallProgram,ApexDC++(InfoFree Hub)}; Filename: {uninstallexe}
Name: {userdesktop}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: quicklaunchicon
[Run]
Filename: {app}\ApexDC.exe; Description: {cm:LaunchProgram,ApexDC++(InfoFree Hub)}; Flags: nowait postinstall skipifsilent
[UninstallDelete]
Name: {app}; Type: filesandordirs; Tasks: ; Languages:
[Code]
var
Page: TInputOptionWizardPage;
procedure InitializeWizard();
begin
Page := CreateInputOptionPage(wpSelectTasks,
'License Information', 'Are you a registered user?',
'If you are a registered user, please check the box below, then click Next.',
True, False);
Page.Add('Kabinet');
Page.Add('Skynet');
Page.Add('Convex, Olympus');
Page.Add('Planet, Extrim, Insis, Infotek');
end;[/more] Слегка подправил. Но это еще без обработки выбора. Просто интегрируй в свой скрипт и попробуй собрать.
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
[ISSI]
#define ISSI_Russian
#define ISSI_Russian "C:\Temp\Настройки.rtf"
#define ISSI_LicensePrint
#define ISSI_Russian
#define ISSI_About "{cm:issiAbout}"
#define ISSI_About "NameAndVersion"
#define ISSI_AppVersion "0.0.5.1"
#define ISSI_SplashScreen "C:\ISSI\issi_example_Images\issi_800x600.bmp"
#define ISSI_SplashScreen_T 2
#define ISSI_SplashScreen_X 500
#define ISSI_SplashScreen_Y 300
#define ISSI_Splash_Corner 100
#define ISSI_URL "http://infofree.ru/forum/showthread.php?t=25896"
#define ISSI_UrlText "Помощь и настройка"
[Setup]
AppName=ApexDC++ (InfoFree Hub)
AppVerName=ApexDC++ (InfoFree Hub)
AppPublisher=Infofree, Inc.
AppPublisherURL=http://infofree.ru
AppSupportURL=http://infofree.ru/forum/showthread.php?t=25896
AppUpdatesURL=http://infofree.ru/forum/downloads.php?do=file&id=123
DefaultDirName={pf}\ApexDC++(InfoFree Hub)
DefaultGroupName=ApexDC++ (InfoFree Hub)
AllowNoIcons=true
;OutputDir=C:\Temp
OutputBaseFilename=ApexDC++(InfoFree Hub)
;SetupIconFile=C:\Temp\1.ico
Compression=lzma
SolidCompression=true
VersionInfoVersion=0.0.5.1
VersionInfoCopyright=BAPK
;WizardImageFile=C:\Program Files\Inno Setup 5\Modern\SetupModern21.bmp
;WizardSmallImageFile=C:\Program Files\Inno Setup 5\Modern\Small\SetupModernSmall16.bmp
AppID={{6EF43DCA-3877-41AC-819A-FE4B027968F6}
ShowLanguageDialog=no
AppVersion=0.0.5.1
UninstallDisplayName=ApexDC++(InfoFree Hub)
VersionInfoTextVersion=Beta 5
DisableStartupPrompt=true
FlatComponentsList=false
VersionInfoCompany=infofree.ru
VersionInfoDescription=Тестовая версия
AppCopyright=BAPK
TimeStampsInUTC=true
LicenseFile=D:\APP\Inno Setup 519\Examples\Readme.txt
[Messages]
BeveledLabel=- Packaged by BAPK
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: rus; Description: Русификация; GroupDescription: Только если программа устанавливается в каталог по умолчанию:; Flags: unchecked
[Files]
Source: Files\*; DestDir: {app}; Flags: ignoreversion
Source: Files\*; DestDir: {app}\EmoPacks\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}\Settings\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}\Themes\; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Files\*; DestDir: {app}
Source: Files\*; DestDir: {app}\Settings\; Flags: onlyifdestfileexists overwritereadonly; Tasks: rus
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Convex_Olympus
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Skynet
Source: Files\*; DestDir: {app}\Settings\; Flags: overwritereadonly ignoreversion; Languages:
; Tasks: Kabinet
[INI]
Filename: {app}\ISTool.url; Section: InternetShortcut; Key: URL; String: http://infofree.ru/forum/showthread.php?t=25896/; Tasks: ; Languages:
[Icons]
Name: {group}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe
Name: {group}\{cm:UninstallProgram,ApexDC++(InfoFree Hub)}; Filename: {uninstallexe}
Name: {userdesktop}\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\ApexDC++(InfoFree Hub); Filename: {app}\ApexDC.exe; Tasks: quicklaunchicon
[Run]
Filename: {app}\ApexDC.exe; Description: {cm:LaunchProgram,ApexDC++(InfoFree Hub)}; Flags: nowait postinstall skipifsilent
[UninstallDelete]
Name: {app}; Type: filesandordirs; Tasks: ; Languages:
[Code]
var
Page: TInputOptionWizardPage;
procedure InitializeWizard();
begin
Page := CreateInputOptionPage(wpSelectTasks,
'License Information', 'Are you a registered user?',
'If you are a registered user, please check the box below, then click Next.',
True, False);
Page.Add('Kabinet');
Page.Add('Skynet');
Page.Add('Convex, Olympus');
Page.Add('Planet, Extrim, Insis, Infotek');
end;[/more] Слегка подправил. Но это еще без обработки выбора. Просто интегрируй в свой скрипт и попробуй собрать.
Genri
Наверно, проще будет так:
[Setup]
AppName=Opera
AppVerName=Opera 9.10
DefaultDirName={pf}\Opera
OutputBaseFilename=OperaSetup
Compression=lzma/ultra
SolidCompression=true
DisableDirPage=false
UsePreviousAppDir=false
DisableProgramGroupPage=true
InternalCompressLevel=ultra
MergeDuplicateFiles=false
RestartIfNeededByRun=false
DefaultGroupName=Opera
DisableFinishedPage=true
UsePreviousTasks=false
AlwaysShowDirOnReadyPage=true
AlwaysShowGroupOnReadyPage=true
ShowLanguageDialog=no
UsePreviousGroup=false
UsePreviousSetupType=false
DisableReadyPage=false
UseSetupLdr=true
AllowRootDirectory=true
VersionInfoVersion=01
VersionInfoTextVersion=13.01.2007
AppCopyright=Serge
VersionInfoCompany=FreeLance
VersionInfoDescription=Opera 9.10 by Serge
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: {app}\*; DestDir: {app}; Flags: recursesubdirs createallsubdirs ignoreversion
Source: {add}\*; DestDir: {userappdata}\Opera\{%WizardDirValue}; Flags: recursesubdirs createallsubdirs ignoreversion
[INI]
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: User Prefs; Key: Language File; String: {app}\russian.lng
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: User Prefs; Key: Download Directory; String: {sd}\Downloads\Opera\
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: Saved Settings; Key: Save Dir; String: {sd}\Downloads\Opera\
[Icons]
Name: {commonprograms}\Opera; Filename: {app}\Opera.exe; Comment: Opera; WorkingDir: {app}; IconFilename: {app}\Opera.exe
Name: {commondesktop}\Opera; Filename: {app}\Opera.exe; Comment: Opera; WorkingDir: {app}; IconFilename: {app}\Opera.exe
[UninstallDelete]
Name: {app}; Type: filesandordirs
Name: {userappdata}\Opera\{%WizardDirValue}; Type: filesandordirs
На данный момент скрипт работает, но Source: {add}\*; DestDir: {userappdata}\Opera\{%WizardDirValue} копирует не в {%WizardDirValue} а просто в {userappdata}\Opera. А все остальное работает.....Подскажите, пожалуйста, что исправить..?
Наверно, проще будет так:
[Setup]
AppName=Opera
AppVerName=Opera 9.10
DefaultDirName={pf}\Opera
OutputBaseFilename=OperaSetup
Compression=lzma/ultra
SolidCompression=true
DisableDirPage=false
UsePreviousAppDir=false
DisableProgramGroupPage=true
InternalCompressLevel=ultra
MergeDuplicateFiles=false
RestartIfNeededByRun=false
DefaultGroupName=Opera
DisableFinishedPage=true
UsePreviousTasks=false
AlwaysShowDirOnReadyPage=true
AlwaysShowGroupOnReadyPage=true
ShowLanguageDialog=no
UsePreviousGroup=false
UsePreviousSetupType=false
DisableReadyPage=false
UseSetupLdr=true
AllowRootDirectory=true
VersionInfoVersion=01
VersionInfoTextVersion=13.01.2007
AppCopyright=Serge
VersionInfoCompany=FreeLance
VersionInfoDescription=Opera 9.10 by Serge
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: {app}\*; DestDir: {app}; Flags: recursesubdirs createallsubdirs ignoreversion
Source: {add}\*; DestDir: {userappdata}\Opera\{%WizardDirValue}; Flags: recursesubdirs createallsubdirs ignoreversion
[INI]
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: User Prefs; Key: Language File; String: {app}\russian.lng
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: User Prefs; Key: Download Directory; String: {sd}\Downloads\Opera\
Filename: {userappdata}\Opera\{%WizardDirValue}\profile\opera6.ini; Section: Saved Settings; Key: Save Dir; String: {sd}\Downloads\Opera\
[Icons]
Name: {commonprograms}\Opera; Filename: {app}\Opera.exe; Comment: Opera; WorkingDir: {app}; IconFilename: {app}\Opera.exe
Name: {commondesktop}\Opera; Filename: {app}\Opera.exe; Comment: Opera; WorkingDir: {app}; IconFilename: {app}\Opera.exe
[UninstallDelete]
Name: {app}; Type: filesandordirs
Name: {userappdata}\Opera\{%WizardDirValue}; Type: filesandordirs
На данный момент скрипт работает, но Source: {add}\*; DestDir: {userappdata}\Opera\{%WizardDirValue} копирует не в {%WizardDirValue} а просто в {userappdata}\Opera. А все остальное работает.....Подскажите, пожалуйста, что исправить..?
Genri
да, именно так все, как ты описал
да, именно так все, как ты описал
Genri
Цитата:
Благодарю. Собралось. ))) Меня уже это радует... Осталось с выбором разобраться.
Еще один вопросик. Можно сделать так, чтобы путь ((после выбора) куда приложение устанавливается) после установки заменял определенную переменную в текстовом файле?
Цитата:
BAPK -- посмотри здесь Слегка подправил. Но это еще без обработки выбора. Просто интегрируй в свой скрипт и попробуй собрать.
Благодарю. Собралось. ))) Меня уже это радует... Осталось с выбором разобраться.
Еще один вопросик. Можно сделать так, чтобы путь ((после выбора) куда приложение устанавливается) после установки заменял определенную переменную в текстовом файле?
Genri
А возможно в этом новом ProgressBar'e сделать так что бы одновременно запускался ProgressBar и Splash.bmp от Sampron и еще добавить надпись в заголовке ProgressBar'a?
[more=ProgressBar]
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes
[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion
Source: WizModernSmallImage.bmp; Flags: dontcopy
Код:
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(Form);
BitmapImage.Left := ScaleX(8);
BitmapImage.Top := ScaleY(8);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := Form;
StaticText := TNewStaticText.Create(Form);
StaticText.Top := BitmapImage.Top;
StaticText.Left := BitmapImage.Left + BitmapImage.Width + ScaleX(8)
StaticText.Caption := 'Inno Setup is a free installer for Windows programs.' +
+ #10#13 + 'Support for all versions of Windows in use today';
StaticText.AutoSize := True;
StaticText.Parent := Form;
CancelButton := TButton.Create(Form);
CancelButton.Parent := Form;
CancelButton.Width := ScaleX(75);
CancelButton.Height := ScaleY(23);
CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption := 'Cancel';
CancelButton.ModalResult := mrCancel;
CancelButton.Cancel := True;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Height := CancelButton.Height - ScaleY(8);
Width := Form.Width - ScaleX(128);
Top := CancelButton.Top;
Left := BitmapImage.Left;
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.ActiveControl := CancelButton;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Form.Repaint;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;
А возможно в этом новом ProgressBar'e сделать так что бы одновременно запускался ProgressBar и Splash.bmp от Sampron и еще добавить надпись в заголовке ProgressBar'a?
[more=ProgressBar]
Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
WindowVisible=yes
[Files]
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion
Source: WizModernSmallImage.bmp; Flags: dontcopy
Код:
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
end;
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(Form);
BitmapImage.Left := ScaleX(8);
BitmapImage.Top := ScaleY(8);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := Form;
StaticText := TNewStaticText.Create(Form);
StaticText.Top := BitmapImage.Top;
StaticText.Left := BitmapImage.Left + BitmapImage.Width + ScaleX(8)
StaticText.Caption := 'Inno Setup is a free installer for Windows programs.' +
+ #10#13 + 'Support for all versions of Windows in use today';
StaticText.AutoSize := True;
StaticText.Parent := Form;
CancelButton := TButton.Create(Form);
CancelButton.Parent := Form;
CancelButton.Width := ScaleX(75);
CancelButton.Height := ScaleY(23);
CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10);
CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10);
CancelButton.Caption := 'Cancel';
CancelButton.ModalResult := mrCancel;
CancelButton.Cancel := True;
ProgressBar := TNewProgressBar.Create(Form);
with ProgressBar do
begin
Height := CancelButton.Height - ScaleY(8);
Width := Form.Width - ScaleX(128);
Top := CancelButton.Top;
Left := BitmapImage.Left;
Parent := Form;
Min:= 0;
Max:= 30;
Position := 0;
end;
Form.ActiveControl := CancelButton;
Form.Show();
for i:= 0 to 30 do
begin
ProgressBar.Position:= i;
Form.Repaint;
Sleep(500);
i:= i + 1;
end;
finally
Form.Free();
end;
end;
NightW0lf
Цитата:
У меня он одоновременно запускается при фоновом окне с WindowVisible=no, а без него по очереди что очень жаль. Сюда выложил пример: http://data.cod.ru/386629066
Цитата:
А возможно в этом новом ProgressBar'e сделать так что бы одновременно запускался ProgressBar и Splash.bmp
У меня он одоновременно запускается при фоновом окне с WindowVisible=no, а без него по очереди что очень жаль. Сюда выложил пример: http://data.cod.ru/386629066
NightW0lf
Спасибо, а еще что-нибудь есть?
Может есть что-то на тему, которая мне нужна (*про имя директории....см. выше*)?
Спасибо, а еще что-нибудь есть?
Может есть что-то на тему, которая мне нужна (*про имя директории....см. выше*)?
Serge2005
Цитата:
У меня есть мое небольшое руководство, НО там того что тебя ИМЕННО интересует нет .
Добавлено:
Sampron
Цитата:
Спасибо за помощь!
НО все таки как добавить текст в заголовок ProgressBar'a??
Цитата:
Может есть что-то на тему, которая мне нужна (*про имя директории....см. выше*)?
У меня есть мое небольшое руководство, НО там того что тебя ИМЕННО интересует нет .
Добавлено:
Sampron
Цитата:
У меня он одоновременно запускается при фоновом окне с WindowVisible=no, а без него по очереди что очень жаль. Сюда выложил пример: http://data.cod.ru/386629066
Спасибо за помощь!
НО все таки как добавить текст в заголовок ProgressBar'a??
NightW0lf
Ясно, а ты не знаешь, как реализовать? какой переменной это обозначается и как ее вставить в путь?
Похоже я был не прав, когда считал скрипт частично рабочим: он просто игнорит %WizardDirValue, как будто его не написано в путях, но ошибки не выбает.
Ясно, а ты не знаешь, как реализовать? какой переменной это обозначается и как ее вставить в путь?
Похоже я был не прав, когда считал скрипт частично рабочим: он просто игнорит %WizardDirValue, как будто его не написано в путях, но ошибки не выбает.
Serge2005
Цитата:
Нет , я бы мог помочь но с таким в InnoSetup ни разу не сталкивался.
Цитата:
Ясно, а ты не знаешь, как реализовать? какой переменной это обозначается и как ее вставить в путь?
Нет , я бы мог помочь но с таким в InnoSetup ни разу не сталкивался.
Serge2005
Может так заработает ? %WizardDirValue%
Когда с обеих концов проценты.
Может так заработает ? %WizardDirValue%
Когда с обеих концов проценты.
maxdddca123
Нет, так не работает..это я все проверял....
Хорошо, может кто знает, как из переменной {app} вытащить имя самой последней директории? Например, если {app)=C:\Program Files\Test_prog, то нужно получить Test_prog.....
Нет, так не работает..это я все проверял....
Хорошо, может кто знает, как из переменной {app} вытащить имя самой последней директории? Например, если {app)=C:\Program Files\Test_prog, то нужно получить Test_prog.....
NightW0lf:
НО все таки как добавить текст в заголовок ProgressBar'a??
//Caption := 'тра-ла-ла'
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
BackgroundBitmapImage: TBitmapImage;
s: string;
width, height: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
Caption := 'Inno Setup Wizard'
НО все таки как добавить текст в заголовок ProgressBar'a??
//Caption := 'тра-ла-ла'
procedure InitializeWizard();
var
Form: TSetupForm;
ProgressBar: TNewProgressBar;
CancelButton: TButton;
StaticText: TNewStaticText;
BitmapImage: TBitmapImage;
BitmapFileName: String;
i: Integer;
BackgroundBitmapImage: TBitmapImage;
s: string;
width, height: Integer;
begin
Form := CreateCustomForm();
try
with Form do
begin
ClientWidth := ScaleX(380);
ClientHeight := ScaleY(120);
BorderStyle:= bsDialog;
Left:= GetSystemMetrics(16) - ClientWidth - ScaleX(12);
Top:= GetSystemMetrics(17) - ClientHeight - ScaleY(12);
Caption := 'Inno Setup Wizard'
Цитата:
Руководство по расширенным возможностям Inno Setup 5 (не для чайников), забираем здесь(3 версия),
новое (4 версия) руководство.
Наша признательность автору проекта - Kindly
Не качается ни 3, ни 4 версия в шапке - ссылки дохлые! Перезалейте 4версию руководства от Kindly куда-нибудь или обновите в шапке. Плз.
san007
Я только что просил... Спасибо NightW0lf
Цитата:
Я только что просил... Спасибо NightW0lf
Цитата:
Serge2005
Цитата:Перезалейте, пожалуйста, руководства!
Перезалил на http://rl-team.ru/822323
serg_aka_lain
Спасибо ТЕБЕ и ВСЕМ кто помогал создавать!
Тперь полностью сделал клон InstallShield .
Спасибо ТЕБЕ и ВСЕМ кто помогал создавать!
Тперь полностью сделал клон InstallShield .
NightW0lf
Цитата:
Если б ещё скины в инно как в InstallShield в стиле Windows XP.
Цитата:
Тперь полностью сделал клон InstallShield
Если б ещё скины в инно как в InstallShield в стиле Windows XP.
Serge2005 -- Можешь попробовать следующее:
Код:
[Files]
Source: Files\*.*; DestDir: {userappdata}\Opera\{code:ShortAppDir}; Flags: ignoreversion
Код:
function ShortAppDir(Param: String): String;
var
AppDir, TrimAppDir: String;
begin
AppDir:= WizardDirValue;
TrimAppDir:= ExtractFilePath(AppDir + '..');
StringChangeEx(AppDir, TrimAppDir, '', True);
Result:= AppDir;
end;
Код:
[Files]
Source: Files\*.*; DestDir: {userappdata}\Opera\{code:ShortAppDir}; Flags: ignoreversion
Код:
function ShortAppDir(Param: String): String;
var
AppDir, TrimAppDir: String;
begin
AppDir:= WizardDirValue;
TrimAppDir:= ExtractFilePath(AppDir + '..');
StringChangeEx(AppDir, TrimAppDir, '', True);
Result:= AppDir;
end;
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: ICONS
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.