Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: iTASmania_Inc
Дата сообщения: 04.09.2007 16:22
Chuvakstepan

Цитата:
Перезалей рисунок плииз

А зачем? Вроде смотрится...
http://www.rapidshare.ru/391276
Автор: gold digger
Дата сообщения: 04.09.2007 16:44
Доброе время суток!!!
Столкнулся с токой проблемой!
при установке темы я устонавлюю свой файл приветствия logonui.exe но не В папку Sys32 а в другую!
Прописую в реестре
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"UIHost"=hex(2):C:\WINDOWS\Resources\Themes\logonui\logonui.exe
При Деинстолляции Удоляется естественно все устоновленные файлы И все кто устоновил маю тему остались без странице приветствия при входе и выходе в WINDOWS!
Как зделать чтоб после удоления прописался путь к оригенальному logonui.exe
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"UIHost"=hex(2):logonui.exe
Зарание блогадарю!!!
Автор: Dimbay
Дата сообщения: 04.09.2007 18:35
Всем привет!
Подскажите,что я неправильно сделал.Не работают компоненты,то есть при выборе игра вылетает.И при нажатии "изменить" в установке и удалении выскакивает надпись,что программа уже удалена.И ещё секция run.Спасибо заранее!

[more][Setup]
AppName=MyMod
AppVerName=MyMod 1.4
AppPublisher=dimbay
AppPublisherURL=Сайт (http://www.)
AppSupportURL=Сайт (http://www.)
AppUpdatesURL=Сайт (http://www.)
DefaultDirName={pf}
DefaultGroupName=MyMod
OutputDir=C:\Documents and Settings\User\Рабочий стол
OutputBaseFilename=MyMod 1.4
Compression=lzma
SolidCompression=yes
AppendDefaultDirName=no
DirExistsWarning=no
ShowComponentSizes=yes
AppModifyPath="{app}\MyMod"

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

[Files]
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay\*"; DestDir: "{app}\dimbay"; Flags: ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay.cfg"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod instal\нашествия\Medieval II Total War\dimbay\data\world\maps\campaign\imperial_campaign\*"; Components: Component; DestDir: "{app}\dimbay\data\world\maps\campaign\imperial_campaign"; Flags: ignoreversion recursesubdirs createallsubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay\data\vanila\export_descr_buildings.txt"; Components: Component1; DestDir: "{app}\dimbay\data\"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay\data\vanila\descr_strat.txt"; Components: Component1; DestDir: "{app}\dimbay\data\world\maps\campaign\imperial_campaign\"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay\data\vanila\export_descr_unit.txt"; Components: Component2; DestDir: "{app}\dimbay\data"; Flags: ignoreversion recursesubdirs overwritereadonly
Source: "C:\Documents and Settings\User\Рабочий стол\MyMod\dimbay\data\vanila\descr_strat.txt"; Components: Component2; DestDir: "{app}\dimbay\data\world\maps\campaign\imperial_campaign\"; Flags: ignoreversion recursesubdirs overwritereadonly
; Внимание: Не используйте "Флажок : Игнор. версии" на систем. файл

[Icons]
Name: {userdesktop}\MyMod.exe; Filename: "{app}\medieval2.exe"; Parameters: " @dimbay.cfg"; WorkingDir: "{app}"; Tasks: DesktopIcon
Name: {userdesktop}\Удалить MyMod.exe; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Tasks: DesktopIcon

[Tasks]
Name: src; Description: "Сохранить оригинальные файлы игры"; Flags: exclusive
Name: "DesktopIcon"; Description: "Создать ярлык MyMod на рабочем столе"; Flags: unchecked
Name: "DesktopIcon"; Description: "Создать ярлык удалить MyMod на рабочем столе"; Flags: unchecked

[Types]
;Name: "polnaya"; Description: "Все компоненты";
Name: "viborochnaya"; Description: "Выбрать компоненты"; Flags: iscustom

[Components]
Name: "Component"; Description: "Добавить нашествия"; Types: viborochnaya
Name: "Component1"; Description: "Обычные цены на строительство"; Types: viborochnaya
Name: "Component2"; Description: "Обычные цены на юнитов"; Types: viborochnaya

[Registry]
Root: HKCU; Subkey: "Software\MyMod"; ValueType: String; ValueName: InstallSettings; ValueData: "{src}"; Flags: uninsdeletekey

[Run]
FileName: "move {app}\data\sounds\*.* {app}\dimbay\data\sounds\*.*"; Flags: shellexec nowait

[Code]
function MoveFile(const srcFile, destFile: PChar): Integer;
external 'MoveFileA@kernel32.dll stdcall';

procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
basePath := ExpandConstant('{app}');
srcFile := ExpandConstant(CurrentFileName);
shortPath := srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile := ExpandConstant('{app}\Backup') + shortPath;
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
end;[/more]
Автор: koc
Дата сообщения: 04.09.2007 18:53
а кто знает, где взять исходники QuickStart Pack?
Автор: Unc1e
Дата сообщения: 04.09.2007 20:08
koc
Скрипт [more=тут]; Inno Setup
; Copyright (C) 1997-2005 Jordan Russell. All rights reserved.
; Portions by Martijn Laan
; For conditions of distribution and use, see LICENSE.TXT.
;
; Inno Setup QuickStart Pack Setup script by Martijn Laan
;
; $jrsoftware: ispack/setup.iss,v 1.58 2007/03/06 10:46:54 mlaan Exp $

[Setup]
AppName=Inno Setup QuickStart Pack
AppId=Inno Setup 5
AppVerName={cm:NameAndVersion,Inno Setup QuickStart Pack,5.1.11}
AppVersion=5.1.11
AppPublisher=Martijn Laan
AppPublisherURL=http://www.innosetup.com/
AppSupportURL=http://www.innosetup.com/
AppUpdatesURL=http://www.innosetup.com/
AppMutex=InnoSetupCompilerAppMutex,Global\InnoSetupCompilerAppMutex
DefaultDirName={pf}\Inno Setup 5
DefaultGroupName=Inno Setup 5
AllowNoIcons=yes
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
UninstallDisplayIcon={app}\Compil32.exe
LicenseFile=isfiles\license.txt
AppModifyPath="{app}\Ispack-setup.exe" /modify=1
WizardImageFile=compiler:WizModernImage-IS.bmp
WizardSmallImageFile=compiler:WizModernSmallImage-IS.bmp
SetupIconFile=Setup.ico

[Messages]
AboutSetupNote=Inno Setup Preprocessor home page:%nhttp://ispp.sourceforge.net/

[Tasks]
Name: desktopicon; Description: "{cm:CreateDesktopIcon}"
;Name: fileassoc; Description: "{cm:AssocFileExtension,Inno Setup,.iss}"

[Files]
;first the files used by [Code] so these can be quickly decompressed despite solid compression
Source: "otherfiles\ISTool.ico"; Flags: dontcopy
Source: "otherfiles\ISPP.ico"; Flags: dontcopy
Source: "otherfiles\ISCrypt.ico"; Flags: dontcopy
Source: "isxdlfiles\isxdl.dll"; Flags: dontcopy
Source: "isfiles\WizModernSmallImage-IS.bmp"; Flags: dontcopy
;other files
Source: "isfiles\license.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\ISetup.chm"; DestDir: "{app}"; Flags: ignoreversion
Source: "isppfiles\ISPP.chm"; DestDir: "{app}"; Flags: promptifolder
Source: "isfiles\Compil32.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\ISCC.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: not ISPPCheck
Source: "isppfiles\ISPPCC.exe"; DestDir: "{app}"; DestName: "ISCC.exe"; Flags: ignoreversion; Check: ISPPCheck
Source: "isfiles\ISCmplr.dll"; DestDir: "{app}"; Flags: ignoreversion; Check: not ISPPCheck
Source: "isppfiles\ISCmplr.dll"; DestDir: "{app}"; Flags: promptifolder; Check: ISPPCheck
Source: "isfiles\ISCmplr.dll"; DestDir: "{app}"; DestName: "ISCmplr.dls"; Flags: ignoreversion; Check: ISPPCheck
Source: "isppfiles\Builtins.iss"; DestDir: "{app}"; Flags: promptifolder; Check: ISPPCheck
Source: "isfiles\Setup.e32"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\SetupLdr.e32"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\Default.isl"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\Languages\Basque.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\BrazilianPortuguese.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Catalan.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Czech.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Danish.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Dutch.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Finnish.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\French.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\German.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Hungarian.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Italian.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Norwegian.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Polish.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Portuguese.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Russian.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Slovak.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Slovenian.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\Languages\Spanish.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion
Source: "isfiles\WizModernImage.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\WizModernImage-IS.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\WizModernSmallImage.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\WizModernSmallImage-IS.bmp"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\iszlib.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\isunzlib.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\isbzip.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\isbunzip.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\islzma.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\whatsnew.htm"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\isfaq.htm"; DestDir: "{app}"; Flags: ignoreversion
Source: "isfiles\Examples\Example1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Example2.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Example3.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\64Bit.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\64BitThreeArch.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\64BitTwoArch.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Components.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Languages.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyProg.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyProg-x64.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyProg-IA64.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyProg.chm"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Readme.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Readme-Dutch.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\Readme-German.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\CodeExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\CodeDlg.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\CodeClasses.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\CodeDll.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\CodeAutomation.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\UninstallCodeDll.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\UninstallCodeExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyDll.dll"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\MyDll\C\MyDll.c"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion
Source: "isfiles\Examples\MyDll\C\MyDll.def"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion
Source: "isfiles\Examples\MyDll\C\MyDll.dsp"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion
Source: "isfiles\Examples\MyDll\Delphi\MyDll.dpr"; DestDir: "{app}\Examples\MyDll\Delphi"; Flags: ignoreversion
Source: "isfiles\Examples\ISPPExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "isfiles\Examples\ISPPExample1License.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "Setup.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion
Source: "Setup.ico"; DestDir: "{app}\Examples"; Flags: ignoreversion
;external files
Source: "{tmp}\ISCrypt.dll"; DestDir: "{app}"; Flags: external ignoreversion; Check: ISCryptCheck
Source: "{srcexe}"; DestDir: "{app}"; DestName: "Ispack-setup.exe"; Flags: external ignoreversion; Check: not ModifyingCheck

[InstallDelete]
;optional ISPP files
Type: files; Name: {app}\Iscmplr.dls
Type: files; Name: {app}\Builtins.iss
;optional ISCrypt files
Type: files; Name: {app}\IsCrypt.dll
;optional desktop icon files
Type: files; Name: {userdesktop}\Inno Setup Compiler.lnk

[UninstallDelete]
Type: files; Name: "{app}\Examples\Output\setup.exe"
Type: files; Name: "{app}\Examples\Output\setup-*.bin"
Type: dirifempty; Name: "{app}\Examples\Output"
Type: dirifempty; Name: "{app}\Examples\MyDll\Delphi"
Type: dirifempty; Name: "{app}\Examples\MyDll\C"
Type: dirifempty; Name: "{app}\Examples\MyDll"
Type: dirifempty; Name: "{app}\Examples"

[Icons]
Name: "{group}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"
Name: "{group}\Inno Setup Documentation"; Filename: "{app}\ISetup.chm";
Name: "{group}\Inno Setup Preprocessor Documentation"; Filename: "{app}\ISPP.chm";
Name: "{group}\Inno Setup FAQ"; Filename: "{app}\isfaq.htm";
Name: "{group}\Inno Setup Revision History"; Filename: "{app}\whatsnew.htm";
Name: "{userdesktop}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Check: not ISToolCheck

[Dirs]
Name: "{localappdata}\ISTool"

[INI]
Filename: "{localappdata}\ISTool\ISTool.ini"; Section: "prefs"; Key: "InnoFolder"; String: "{app}"; Flags: createkeyifdoesntexist

[Run]
Filename: "{tmp}\istool-setup.exe"; StatusMsg: "Installing ISTool..."; Parameters: "/verysilent /group=""{groupname}\ISTool"" desktopicon"; Flags: skipifdoesntexist; Check: ISToolCheck; Tasks: desktopicon
Filename: "{tmp}\istool-setup.exe"; StatusMsg: "Installing ISTool..."; Parameters: "/verysilent /group=""{groupname}\ISTool"""; Flags: skipifdoesntexist; Check: ISToolCheck; Tasks: not desktopicon
Filename: "{app}\Compil32.exe"; Parameters: "/ASSOC"; StatusMsg: "{cm:AssocingFileExtension,Inno Setup,.iss}"; Check: not ISToolCheck
Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; Description: "{cm:LaunchProgram,Inno Setup}"; Flags: nowait postinstall skipifsilent; Check: not ISToolCheck and not ModifyingCheck
Filename: "{code:GetISToolPath}\ISTool.exe"; WorkingDir: "{code:GetISToolPath}"; Description: "{cm:LaunchProgram,ISTool}"; Flags: nowait postinstall skipifsilent skipifdoesntexist; Check: ISToolCheck and not ModifyingCheck

[UninstallRun]
Filename: "{app}\Compil32.exe"; Parameters: "/UNASSOC"; RunOnceId: "RemoveISSAssoc"

[Code]
var
Modifying: Boolean;

ISToolPage, ISPPPage, ISCryptPage: TWizardPage;
ISToolCheckBox, ISPPCheckBox, ISCryptCheckBox: TCheckBox;
ISToolOrg: Boolean;

FilesDownloaded: Boolean;

ISToolPath: String;
ISToolPathRead: Boolean;

procedure isxdl_AddFile(URL, Filename: PChar);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: PChar): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';

function GetModuleHandle(lpModuleName: LongInt): LongInt;
external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: PChar; nIconIndex: LongInt): LongInt;
external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth, cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;
external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt;
external 'DestroyIcon@user32.dll stdcall';

const
DI_NORMAL = 3;

function InitializeSetup(): Boolean;
begin
Modifying := ExpandConstant('{param:modify|0}') = '1';
FilesDownloaded := False;
ISToolPathRead := False;

Result := True;
end;

function CreateCustomOptionPage(AAfterId: Integer; ACaption, ASubCaption, AIconFileName, ALabel1Caption, ALabel2Caption,
ACheckCaption: String; var CheckBox: TCheckBox): TWizardPage;
var
Page: TWizardPage;
Rect: TRect;
hIcon: LongInt;
Label1, Label2: TNewStaticText;
begin
Page := CreateCustomPage(AAfterID, ACaption, ASubCaption);

try
AIconFileName := ExpandConstant('{tmp}\' + AIconFileName);
if not FileExists(AIconFileName) then
ExtractTemporaryFile(ExtractFileName(AIconFileName));

Rect.Left := 0;
Rect.Top := 0;
Rect.Right := 32;
Rect.Bottom := 32;

hIcon := ExtractIcon(GetModuleHandle(0), AIconFileName, 0);
try
with TBitmapImage.Create(Page) do begin
with Bitmap do begin
Width := 32;
Height := 32;
Canvas.Brush.Color := WizardForm.Color;
Canvas.FillRect(Rect);
DrawIconEx(Canvas.Handle, 0, 0, hIcon, 32, 32, 0, 0, DI_NORMAL);
end;
Parent := Page.Surface;
end;
finally
DestroyIcon(hIcon);
end;
except
end;

Label1 := TNewStaticText.Create(Page);
with Label1 do begin
AutoSize := False;
Left := WizardForm.SelectDirLabel.Left;
Width := Page.SurfaceWidth - Left;
WordWrap := True;
Caption := ALabel1Caption;
Parent := Page.Surface;
end;
WizardForm.AdjustLabelHeight(Label1);

Label2 := TNewStaticText.Create(Page);
with Label2 do begin
Top := Label1.Top + Label1.Height + ScaleY(12);
Caption := ALabel2Caption;
Parent := Page.Surface;
end;
WizardForm.AdjustLabelHeight(Label2);

CheckBox := TCheckBox.Create(Page);
with CheckBox do begin
Top := Label2.Top + Label2.Height + ScaleY(12);
Width := Page.SurfaceWidth;
Caption := ACheckCaption;
Parent := Page.Surface;
end;

Result := Page;
end;

procedure CreateCustomPages;
var
Caption, SubCaption1, IconFileName, Label1Caption, Label2Caption, CheckCaption: String;
begin
Caption := 'ISTool';
SubCaption1 := 'Would you like to download and install ISTool?';
IconFileName := 'ISTool.ico';
Label1Caption :=
'ISTool is an easy to use Inno Setup Script editor by Bjørnar Henden and meant as a replacement of the standard' +
' Compiler IDE that comes with Inno Setup. See http://www.istool.org/ for more information.' + #13#10#13#10 +
'Using ISTool is especially recommended for new users.';
Label2Caption := 'Select whether you would like to download and install ISTool, then click Next.';
CheckCaption := '&Download and install ISTool';

ISToolPage := CreateCustomOptionPage(wpSelectProgramGroup, Caption, SubCaption1, IconFileName, Label1Caption, Label2Caption, CheckCaption, ISToolCheckBox);

Caption := 'Inno Setup Preprocessor';
SubCaption1 := 'Would you like to install Inno Setup Preprocessor?';
IconFileName := 'ISPP.ico';
Label1Caption :=
'Inno Setup Preprocessor (ISPP) is an add-on by Alex Yackimoff for Inno Setup. ISPP allows' +
' you to conditionally compile parts of scripts, to use compile time variables in your scripts and to use built-in' +
' functions which for example can read from the registry or INI files at compile time. See http://ispp.sf.net for more' +
' information.' + #13#10#13#10 +
'ISPP also contains a special version of the ISCC command line compiler which can take variable definitions as command' +
' line parameters and use them during compilation.' + #13#10#13#10 +
'ISPP is compatible with ISTool.';
Label2Caption := 'Select whether you would like to install ISPP, then click Next.';
CheckCaption := '&Install Inno Setup Preprocessor';

ISPPPage := CreateCustomOptionPage(ISToolPage.ID, Caption, SubCaption1, IconFileName, Label1Caption, Label2Caption, CheckCaption, ISPPCheckBox);

Caption := 'Encryption Support';
SubCaption1 := 'Would you like to download encryption support?';
IconFileName := 'ISCrypt.ico';
Label1Caption :=
'Inno Setup supports encryption. However, because of encryption import/export laws in some countries, encryption support is not included in the main' +
' Inno Setup installer. Instead, it can be downloaded from a server located in the Netherlands now.';
Label2Caption := 'Select whether you would like to download encryption support, then click Next.';
CheckCaption := '&Download and install encryption support';

ISCryptPage := CreateCustomOptionPage(ISPPPage.ID, Caption, SubCaption1, IconFileName, Label1Caption, Label2Caption, CheckCaption, ISCryptCheckBox);
end;

procedure InitializeWizard;
begin
CreateCustomPages;

ISToolCheckBox.Checked := GetPreviousData('ISTool', '1') = '1';
ISPPCheckBox.Checked := GetPreviousData('ISPP', '1') = '1';
ISCryptCheckBox.Checked := GetPreviousData('ISCrypt', '1') = '1';

ISToolOrg := ISToolCheckBox.Checked;
end;

procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
SetPreviousData(PreviousDataKey, 'ISTool', IntToStr(Ord(ISToolCheckBox.Checked)));
SetPreviousData(PreviousDataKey, 'ISPP', IntToStr(Ord(ISPPCheckBox.Checked)));
SetPreviousData(PreviousDataKey, 'ISCrypt', IntToStr(Ord(ISCryptCheckBox.Checked)));
end;

function DownloadFiles(ISTool, ISCrypt: Boolean): Boolean;
var
hWnd: Integer;
URL, FileName: String;
begin
isxdl_SetOption('label', 'Downloading extra files');
isxdl_SetOption('description', 'Please wait while Setup is downloading extra files to your computer.');

try
FileName := ExpandConstant('{tmp}\WizModernSmallImage-IS.bmp');
if not FileExists(FileName) then
ExtractTemporaryFile(ExtractFileName(FileName));
isxdl_SetOption('smallwizardimage', FileName);
except
end;

//turn off isxdl resume so it won't leave partially downloaded files behind
//resuming wouldn't help anyway since we're going to download to {tmp}
isxdl_SetOption('resume', 'false');

hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));

if ISTool then begin
URL := 'http://www.istool.org/getistool.aspx?version=5';
FileName := ExpandConstant('{tmp}\istool-setup.exe');
isxdl_AddFile(URL, FileName);
end;

if ISCrypt then begin
URL := 'http://www.xs4all.nl/~mlaan2/iscrypt/ISCrypt.dll';
FileName := ExpandConstant('{tmp}\ISCrypt.dll');
isxdl_AddFile(URL, FileName);
end;

if isxdl_DownloadFiles(hWnd) <> 0 then
FilesDownloaded := True
else
SuppressibleMsgBox('Setup could not download the extra files. Try again later or download and install the extra files manually.' + #13#13 + 'Setup will now continue installing normally.', mbError, mb_Ok, idOk);

Result := True;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
if (CurPageID = wpReady) and (ISToolCheckBox.Checked or ISCryptCheckBox.Checked) then
Result := DownloadFiles(ISToolCheckBox.Checked, ISCryptCheckBox.Checked)
else
Result := True;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := Modifying and ((PageID = wpSelectDir) or (PageID = wpSelectProgramGroup) or ((PageID = ISToolPage.ID) and ISToolOrg));
end;

function ModifyingCheck: Boolean;
begin
Result := Modifying;
end;

function ISToolCheck: Boolean;
begin
Result := ISToolCheckBox.Checked and FilesDownloaded;
end;

function ISPPCheck: Boolean;
begin
Result := ISPPCheckBox.Checked;
end;

function ISCryptCheck: Boolean;
begin
Result := ISCryptCheckBox.Checked and FilesDownloaded;
end;

function GetISToolPath(S: String): String;
var
ISToolPathKeyName, ISToolPathValueName: String;
begin
if not ISToolPathRead then begin
ISToolPathKeyName := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{A9E12684-DD23-4D11-ACAF-6041954BCA00}_is1';
ISToolPathValueName := 'Inno Setup: App Path';

if not RegQueryStringValue(HKLM, ISToolPathKeyName, ISToolPathValueName, ISToolPath) then begin
if not RegQueryStringValue(HKCU, ISToolPathKeyName, ISToolPathValueName, ISToolPath) then begin
SuppressibleMsgBox('Error launching ISTool:'#13'Could not read ISTool path from registry.', mbError, mb_Ok, idOk);
ISToolPath := '';
end;
end;

ISToolPathRead := True;
end;

Result := ISToolPath;
end;[/more]
Автор: iTASmania_Inc
Дата сообщения: 05.09.2007 08:10
Chanka

Цитата:
Там так до 10 мб 0.000 а после 00.00.

А поконкретнее можно? Пример можешь привести?
Автор: koc
Дата сообщения: 05.09.2007 23:17
Unc1e
г, несообразил. Попробую, через недельку отпишусь о результатах.
Зы: где взять 3-ий Delphi?
Автор: Unc1e
Дата сообщения: 06.09.2007 13:05
koc
То что я запостил - это скрипт установки QuickStart Pack, но не сами исходники QuickStart Pack.
Автор: iTASmania_Inc
Дата сообщения: 06.09.2007 16:18
Chanka
Проверь почту!
Автор: RazDray
Дата сообщения: 07.09.2007 03:40
Как научить Inno проверять несколько ключей реестра, для определения пути установки программы?

Логически напрашивающаяся конструкция не работает -
DefaultDirName="{reg:HKLM\SOFTWARE\Company\Program,WorkDir|HKCU\SOFTWARE\Company\Program,WorkDir|{pf}\Program}"
Автор: noiseless
Дата сообщения: 07.09.2007 09:56
RazDray
Такая схема работает, если только первого параметра не будет найдено. Т.е. только так:
DefaultDirName="{reg:HKLM\SOFTWARE\Company\Program,WorkDir|{pf}\Program}"
Задачу можно выполнить только через секцию [Code].

А для чего собственно такая хитрость? Можно описать задачу поконкретнее, тогда помощь будет скорее и полнее
Автор: ssv14
Дата сообщения: 07.09.2007 13:11
Ребята помогите плз, как прописать в коде для проигрывания трекерной музыки bassmod.dll функцию BASSMOD_MusicSetVolume и выставить например 50, а то по умолчанию 100, а некоторая музыка очень громкая. Использую код

[more]
[Code]
const
BASS_MUSIC_RAMP = 1;
BASS_MUSIC_RAMPS = 2;
BASS_MUSIC_LOOP = 4;
BASS_MUSIC_FT2MOD = 16;
BASS_MUSIC_PT1MOD = 32;
BASS_MUSIC_SURROUND = 512;
BASS_MUSIC_SURROUND2 = 1024;


function BASSMOD_Init(device: Integer; freq, flags: DWORD): Boolean;
external 'BASSMOD_Init@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicStop(): Boolean;
external 'BASSMOD_MusicStop@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicLoad(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): Boolean;
external 'BASSMOD_MusicLoad@files:BASSMOD.dll stdcall delayload';

function BASSMOD_MusicPlay(): Boolean;
external 'BASSMOD_MusicPlay@files:BASSMOD.dll stdcall delayload';

procedure BASSMOD_Free();
external 'BASSMOD_Free@files:BASSMOD.dll stdcall delayload';

procedure InitializeWizard();
var
Name1: string;
begin
ExtractTemporaryFile('BASSMOD.dll');
ExtractTemporaryFile('music.mod');
if not BASSMOD_Init(-1,44100,0)
then
begin
MsgBox('BASSMOD not init.', mbError, MB_OK)
BASSMOD_Free;
end
else
Name1:=ExpandConstant('{tmp}\music.mod');

if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, 4 or 512 or 32 or 1) then
BASSMOD_MusicPlay;
end;

procedure DeInitializeSetup();
begin
BASSMOD_MusicStop;
BASSMOD_Free();
end;
[/more]

так правильно будет?

[Code]

const
BASSMOD_MusicSetVolume = 50;
Автор: Real_Inkvizitor
Дата сообщения: 07.09.2007 16:21
Люди помогите плиз. Во время установки над шкалой процесса есть "Распаковка файлов" и ниже пишет какие файлы и куда устанавливает как сделать так чтобы вместо етого было 1 неподвижное сообщение? и напишите пожайлуста код [registry] помещающий в реестр (и по надобности заменяющий) следующее:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin]

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0]

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server]

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\iplist]

[HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters]
"NTAuthEnabled"=hex:00,00,00,00
"Parameter"=hex:98,87,08,ef,dd,e9,c1,67,22,cb,c2,ac,db,87,ca,5f
"DisableTrayIcon"=hex:01,00,00,00
"Port"=hex:23,13,00,00
"EnableLogFile"=hex:00,00,00,00
"LogFilePath"="c:\\logfile.txt"
"FilterIp"=hex:00,00,00,00
"AskUser"=hex:00,00,00,00

[HKEY_LOCAL_MACHINE\SOFTWARE\RAdmin\v1.01\ViewType]
"Data"=hex:95,f3,0b,13,44,c0,10,74,7b,2e,83,2c,f5,89,e4,b9,49,c8,49,00,1c,eb,\
18,64,87,46,c5,78,59,73,2a,6a,13,72,53,9e,e4,f5,74,94,4f,49,42,46,f7,ab,05,\
1f,55,24,72,79,e9,85,c8,8a,1e,5e,e3,d8,35,70,06,28
Автор: noiseless
Дата сообщения: 07.09.2007 16:27
Real_Inkvizitor
По поводу второй части. Можно сделать проще:

[Files]
Source: "radmin.reg"; DestDir: "{app}"

[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\radmin.reg"

Данные добавятся в реестр без каких-либо вопросов

А так вота (ну, наверно; попробуй):

[Registry]
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "NTAuthEnabled"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "Parameter"; ValueData: "98,87,08,ef,dd,e9,c1,67,22,cb,c2,ac,db,87,ca,5f"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "DisableTrayIcon"; ValueData: "01,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "Port"; ValueData: "23,13,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "EnableLogFile"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: string; ValueName: "LogFilePath"; ValueData: "c:\logfile.txt"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "FilterIp"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "AskUser"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\RAdmin\v1.01\ViewType"; ValueType: binary; ValueName: "Data"; ValueData: "95,f3,0b,13,44,c0,10,74,7b,2e,83,2c,f5,89,e4,b9,49,c8,49,00,1c,eb,18,64,87,46,c5,78,59,73,2a,6a,13,72,53,9e,e4,f5,74,94,4f,49,42,46,f7,ab,05, 1f,55,24,72,79,e9,85,c8,8a,1e,5e,e3,d8,35,70,06,28"; flags: uninsdeletekey
Автор: RazDray
Дата сообщения: 07.09.2007 17:49
noiseless

Цитата:
А для чего собственно такая хитрость? Можно описать задачу поконкретнее, тогда помощь будет скорее и полнее

Нужно найти, где установлена программа.
Если программу ставил администратор (или пользователь с правами администратора), то она делает запись в ветке HKLM, если пользователь, то в HKCU.
Более того, существует несколько модификаций программы (около 10) и записи в реестре о них отличаются.
К примеру -
HKLM\SOFTWARE\Company\ProgramNamePro\
HKLM\SOFTWARE\Company\ProgramNameLight\
и т.д.
Автор: ssv14
Дата сообщения: 07.09.2007 18:05
2 noiseless

Цитата:
[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\radmin.reg"


Ну так наверное делать не следует, т.к. regedit вроде не умеет пути с пробелом обрабатывать
надо путь в кавычках писать

Filename: "{win}\regedit.exe"; Parameters: "/s ""{app}\radmin.reg"""; //или это только для {sys}\regedt32.exe ?

можно сделать так:
с рега удалить (сохранить в другом файле) строки, где содержатся пути и сделать запуск рега через секцию [Run], а строки с путями внести через секцию Registry, но так как в реге мало текста, то можно все и набрать.
Автор: serg_aka_lain
Дата сообщения: 07.09.2007 20:01
RazDray

Я сделал бы так

[more]
Setup
DefaultDirName={code:GetInstallDir}

Code

function GetInstallDir( AppID: String ): string;
var dir: string;
begin
dir:= '';
if not RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramNamePro',
'InstallLocation', dir) then
RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramNameLight',
'InstallLocation', dir);
Result:= dir;
end;

function InitializeSetup(): Boolean;
begin
Result:= True;
if not RegKeyExists(HKLM, 'SOFTWARE\Company\ProgramNamePro') then
begin
if not RegKeyExists(HKLM, 'SOFTWARE\Company\ProgramNameLight') then
begin
MsgBox('Программа не неайдена!', mberror, mb_ok);
Result:=False;
exit;
end
end
end;
[/more]
Автор: Real_Inkvizitor
Дата сообщения: 07.09.2007 20:02

Цитата:
По поводу второй части. Можно сделать проще:

[Files]
Source: "radmin.reg"; DestDir: "{app}"

[Run]
Filename: "{win}\regedit.exe"; Parameters: "/s {app}\radmin.reg"

Данные добавятся в реестр без каких-либо вопросов

А так вота (ну, наверно; попробуй):

[Registry]
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "NTAuthEnabled"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "Parameter"; ValueData: "98,87,08,ef,dd,e9,c1,67,22,cb,c2,ac,db,87,ca,5f"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "DisableTrayIcon"; ValueData: "01,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "Port"; ValueData: "23,13,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "EnableLogFile"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: string; ValueName: "LogFilePath"; ValueData: "c:\logfile.txt"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "FilterIp"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SYSTEM\RAdmin\v2.0\Server\iplist\Parameters"; ValueType: binary; ValueName: "AskUser"; ValueData: "00,00,00,00"; flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\RAdmin\v1.01\ViewType"; ValueType: binary; ValueName: "Data"; ValueData: "95,f3,0b,13,44,c0,10,74,7b,2e,83,2c,f5,89,e4,b9,49,c8,49,00,1c,eb,18,64,87,46,c5,78,59,73,2a,6a,13,72,53,9e,e4,f5,74,94,4f,49,42,46,f7,ab,05, 1f,55,24,72,79,e9,85,c8,8a,1e,5e,e3,d8,35,70,06,28"; flags: uninsdeletekey

Работает!!!!!!! Огромное спасибо!!
Автор: ssv14
Дата сообщения: 07.09.2007 20:07
мне бы кто-то помог с BASSMOD_MusicSetVolume несколько постов выше плз
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 21:09
ssv14

Цитата:
мне бы кто-то помог с BASSMOD_MusicSetVolume несколько постов выше плз

procedure BASSMOD_SetVolume(volume: Integer);
external 'BASSMOD_SetVolume@files:BASSMOD.dll stdcall delayload';
Автор: ssv14
Дата сообщения: 07.09.2007 21:36
спасибо, а где в уже в коде прописать, что уровень громкости 50 или 30 ? а то я в программировании не шарю
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 21:46
[more=Подробнее]
procedure InitializeWizard();
var
Name1: string;
begin
ExtractTemporaryFile('BASSMOD.dll');
ExtractTemporaryFile('music.mod');
if not BASSMOD_Init(-1,44100,0)
then
begin
MsgBox('BASSMOD not init.', mbError, MB_OK)
BASSMOD_Free;
end
else
Name1:=ExpandConstant('{tmp}\music.mod');

if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, 4 or 512 or 32 or 1) then
begin
BASSMOD_SetVolume(50)
BASSMOD_MusicPlay
end
end;
[/more]

Цитата:
я в программировании не шарю

Я тоже.
Автор: ssv14
Дата сообщения: 07.09.2007 21:52
iTASmania_Inc

а говоришь не шаришь, сеньскс, жаль только что это не внутренняя регулировка громкости, а системная Wave

Все равно спасибо, получилось

А если бы она еще и после выхода системный уровень звука обратно восстанавливала, вообще здорво былобы

А вот BASSMOD_MusicSetAmplify самое оно

спасибо за помощь
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 22:09
ssv14

Цитата:
А вот BASSMOD_MusicSetAmplify самое оно

Это про что? По-моему, она за уровень громкости не отвечает? Или я не прав?
Автор: ssv14
Дата сообщения: 07.09.2007 22:14
volume - уровень громкости, только в системном микшене (wave), а амплитуда - внутренняя функция библиотеки увеличения или уменьшения амплитуды, короче почти та же громкость, я уже проверил, получается отлично

еще раз спасибо за помощь
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 22:16
ssv14

Цитата:
volume - уровень громкости, только в системном микшене (wave), а амплитуда - внутреннее увеличение или уменьшение амплитуды, короче почти та же громкость, я уже проверил, получается отлично

Понятно, тогда код с возвращением системного уровня звука уже неактуален...
Автор: ssv14
Дата сообщения: 07.09.2007 22:26
iTASmania_Inc
точно, он уже не нужен, функция BASSMOD_MusicSetAmplify меняет амплитуду не затрагивая системный микшер

когда писал это сообщение, раза 3-4 вылетало сообщение что мол флуд, и я могу добавлять дальше сообщения ченез 600 сек
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 22:51
ssv14
Только у тебя(Вас) код проигрывания музыки без кнопок управления, не лучше ли их доделать, ИМХО, красивше будет?..
Для этого читать Inno Setup Scripting 5.1.
Автор: ssv14
Дата сообщения: 07.09.2007 22:55
iTASmania_Inc
давай на ты, вот разбираюсь, код как раз оттуда, про прикручивания кнопок там нету, нашел в этой ветке, но только к mp3, еще не пробовал, но собираюсь, + украшательства там разные, много полезного отсюда почерпнул
Автор: iTASmania_Inc
Дата сообщения: 07.09.2007 23:07
ssv14
А к кодик для mp3 легко под MOD сделать:
http://www.rapidshare.ru/394383

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.