Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 4]
Johny777
16-05-2012, 01:37
Ivan_009,
ну вот так
with WizardForm do
begin
BorderStyle := bsNone;
end;
только окно таскать не за что будет
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,
но благодаря Лександру у нас есть чудо-процедура (сам у себя в инсталле использую. Очень удобно!)
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[ code]
type
TANewStatic = record
Static : TNewStaticText;
end;
var
ANewStatic : array of TANewStatic;
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';
procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;
procedure AddStaticToArray(st:TNewStaticText);
var
i:integer;
begin
i:=GetArrayLength(ANewStatic);
SetArrayLength(ANewStatic,i+1);
ANewStatic[i].Static:=st;
ANewStatic[i].Static.OnMouseDown:=@MouseDown;
end;
procedure StaticChange(c:TWinControl);
var
i:integer;
begin
for i:=0 to c.ControlCount-1 do
if c.Controls[i] is TWinControl then begin
if c.Controls[i] is TNewStaticText then AddStaticToArray(TNewStaticText(c.Controls[i]));
if TWinControl(c.Controls[i]).ControlCount>0 then StaticChange(TWinControl(c.Controls[i]));
end;
end;
procedure InitializeWizard;
var i:integer;
begin
with WizardForm do begin
/// BorderStyle:=bsNone;
end;
for i:=0 to 18 do
begin
with TLabel.Create(WizardForm) do
begin
BringToFront;
Case i of
0:Parent := WizardForm;
1:Parent := WizardForm.OuterNotebook;
2:Parent := WizardForm.InnerNotebook;
3:Parent := WizardForm.InnerPage;
4:Parent := WizardForm.WelcomePage;
5:Parent := WizardForm.LicensePage;
6:Parent := WizardForm.PasswordPage;
7:Parent := WizardForm.InfoBeforePage;
8:Parent := WizardForm.UserInfoPage;
9:Parent := WizardForm.SelectDirPage;
10:Parent := WizardForm.SelectComponentsPage;
11:Parent := WizardForm.SelectProgramGroupPage;
12:Parent := WizardForm.SelectTasksPage;
13:Parent := WizardForm.ReadyPage;
14:Parent := WizardForm.PreparingPage;
15:Parent := WizardForm.InstallingPage;
16:Parent := WizardForm.InfoAfterPage;
17:Parent := WizardForm.FinishedPage;
18:Parent := WizardForm.MainPanel;
end;
Transparent := True;
Align := alClient;
OnMouseDown:=@MouseDown;
end;
end;
StaticChange(WizardForm);
end;
при желании можно не использовать кусок из InitializeWizard
и всем нужным элементам во вкладке "события" дизайнера расширенной версии
в событии OnMouseDown присвоить процедуру MouseDown (картинкам, панелям и пр)
в окнах (ведь Notebook-ам эту процедуру не присвоить) создать на всю страницу или в определённых участках лейблы с параметрами (параметры выделил жирным)
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
Name := 'Label1';
Parent := WizardForm.SelectDirPage;
AutoSize := False;
Transparent := True;
OnMouseDown := @MouseDown;
Caption := '';
Left := ScaleX(104);
Top := ScaleY(112);
Width := ScaleX(171);
Height := ScaleY(53);
end;
а если этот лейбл будет не давать пользоваться некоторыми элементами (SpeedButton-у например), то их нужно в той же вкладке
"дизайн" при щелчке правой кнопкой мыши по ним поднять "на передний план"
:)
Как сделать , чтобы после установки в ярлыке на раб.столе был прописан путь : X:\XXX\Shrek 2\system
Инстал все тот же:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
DiskSpanning=true
DiskSliceSize=1457664000
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{4C9C2778-0018-4EA8-BD69-82E1027FEB7D}
AppName=Shrek 2
AppVersion=1.0
;AppVerName=Shrek 2 1.0
AppPublisher=MeXanik
AppPublisherURL=rutracker.org
AppSupportURL=rutracker.org
AppUpdatesURL=rutracker.org
DefaultDirName={pf}\Shrek 2
DefaultGroupName=Shrek 2
AllowNoIcons=yes
OutputDir=C:\Documents and Settings\Администратор\Рабочий стол\Новая папка
OutputBaseFilename=setup
SetupIconFile=D:\Разное\1336903674_adept_installer.ico
Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64
[Languages]
Name: english; MessagesFile: compiler:Languages\English.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: D:\Разное\Shrek2-1\System\Game.exe; DestDir: {app}; Flags: ignoreversion
;Source: D:\Разное\Shrek2-1\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: {group}\Shrek 2; Filename: {app}\Game.exe
Name: {group}\{cm:ProgramOnTheWeb,Shrek 2}; Filename: rutracker.org
Name: {group}\{cm:UninstallProgram,Shrek 2}; Filename: {uninstallexe}
Name: {commondesktop}\Shrek 2; Filename: {app}\Game.exe; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Shrek 2; Filename: {app}\Game.exe; Tasks: quicklaunchicon
[Run]
Filename: {src}\Shrek2.exe; WorkingDir: {app}; Parameters: -x -y -s2 -d.; StatusMsg: Идет распаковка данных, ждите...; Flags: runasoriginaluser
Filename: {app}\system\Game.exe; Description: {cm:LaunchProgram,Shrek 2}; Flags: nowait postinstall skipifsilent
[Registry]
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: InstallPath; ValueData: {app}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: StartMenuFolder; ValueData: MeXanik
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: Version; ValueData: 1.00
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: Language; ValueData: 1049
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: UninstallString; ValueData: C:\Program Files\Common Files\InstallShield\Driver\7\Intel 32\Idriver.exe
Root: HKLM; SubKey: SOFTWARE\Activision\Shrek 2; ValueType: string; ValueName: UninstallArgs; ValueData: /M{{7774A6A9-CE0D-4544-9A29-84351BAE184A}
[UninstallDelete]
Name: {app}\*.*; Type: filesandordirs
R.i.m.s.k.y.
16-05-2012, 07:57
MeХanik, почитать про абсолютные и относительные пути
[Icons]
Name: {group}\Shrek 2; Filename: {app}\System\Game.exe; WorkingDir: {app}\System
bugmenotagain
16-05-2012, 09:50
http://i38.fastpic.ru/big/2012/0516/e7/ccbb33d9a0404701860dd22053e4c3e7.png
в реестре ошибка появляется после распаковки.
Значит страницы никак нельзя отредактировать?
NSIS действительно самый лучший. все страницы там руками пишешь, без всякой черной магии и pascal.
R.i.m.s.k.y.
16-05-2012, 09:55
bugmenotagain, и что из этой куцой картинки мы должны понять?
bugmenotagain
16-05-2012, 10:18
R.i.m.s.k.y., ошибка в реестре. программа CCleaner
R.i.m.s.k.y.
16-05-2012, 10:23
bugmenotagain,
Телепаты сидят в вопросах и ответах мэйл.ру
Из тебя все клещами тянуть надо? покажи скрипт и при каких условиях возникает ошибка
bugmenotagain
16-05-2012, 10:31
#define MyAppName "WinDjView 1.0.3"
#define MyAppVersion "1.0.3"
#define MyAppExeName "WinDjView.exe"
[Setup]
AppId={{60F3D1CB-B2A7-46E7-92B0-93526131061D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName=WinDjView 1.0.3
DefaultDirName={pf}\WinDjView
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
InfoBeforeFile=C:\Users\Admin\Desktop\ss.rtf
OutputDir=D:\Инстляторы
OutputBaseFilename=WinDjView.v1.0.3
SetupIconFile=C:\Users\Admin\Desktop\win.ico
Compression=lzma
SolidCompression=yes
WizardImageFile=картинка.bmp
WizardSmallImageFile=55x55.bmp
UninstallFilesDir={app}\uninstall
DirExistsWarning=no
WizardImageStretch=no
WizardImageBackColor=clWhite
ShowComponentSizes=no
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce; Components: norm;
[Components]
Name: norm; Description: Установка; Flags: exclusive
Name: port; Description: Распаковка; Flags: exclusive
[Files]
Source: "C:\users\Admin\Desktop\WinDjViewPortable\*"; DestDir: {app}\; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname uninsneveruninstall; Components: port Source: "C:\Program Files\WinDjView\*"; DestDir: {app}\; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname; Components: norm
[UninstallDelete]
Type: files; Name: {app}\ ; Components: port
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[ Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) and (IsComponentSelected('port')) then Exec(ExpandConstant('{app}\uninstall\unins000.exe'), '/VERYSILENT', '', SW_SHOW, ewNoWait, ResultCode);
end;
[Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
после распаковки портативной версии программы.
R.i.m.s.k.y.
16-05-2012, 10:52
bugmenotagain, ну мало ли
а точно имя удалятора unins000.exe???
так попробуй
#define MyAppName "WinDjView 1.0.3"
#define MyAppVersion "1.0.3"
#define MyAppExeName "WinDjView.exe"
[Setup]
AppId={{60F3D1CB-B2A7-46E7-92B0-93526131061D}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName=WinDjView 1.0.3
DefaultDirName={pf}\WinDjView
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
InfoBeforeFile=C:\Users\Admin\Desktop\ss.rtf
OutputDir=D:\Инстляторы
OutputBaseFilename=WinDjView.v1.0.3
SetupIconFile=C:\Users\Admin\Desktop\win.ico
Compression=lzma
SolidCompression=yes
WizardImageFile=картинка.bmp
WizardSmallImageFile=55x55.bmp
UninstallFilesDir={app}\uninstall
DirExistsWarning=no
WizardImageStretch=no
WizardImageBackColor=clWhite
ShowComponentSizes=no
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkedonce; Components: norm;
[Components]
Name: norm; Description: Установка; Flags: exclusive
Name: port; Description: Распаковка; Flags: exclusive
[Files]
Source: "C:\users\Admin\Desktop\WinDjViewPortable\*"; DestDir: {app}\; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname uninsneveruninstall; Components: port
Source: "C:\Program Files\WinDjView\*"; DestDir: {app}\; Flags: ignoreversion createallsubdirs recursesubdirs sortfilesbyextension sortfilesbyname; Components: norm
;[UninstallDelete]
;Type: files; Name: {app}\ ; Components: port
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[*Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) then begin
if (IsComponentSelected('port')) then begin
Exec(ExpandConstant('{app}\uninstall\unins000.exe'), ' /VERYSILENT', ExpandConstant('{app}\uninstall'), SW_SHOW, ewNoWait, ResultCode);
MsgBox('папка с удалятором = ' + ExpandConstant('{app}\uninstall'), mbInformation, MB_OK);
if RegKeyExists(HKLM, SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1) then MsgBox('ключ в реестре не удален', mbInformation, MB_OK);
end; //if (IsComponentSelected('port'))
end; //if (CurStep = ssDone)
end; //CurStepChanged
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
bugmenotagain
16-05-2012, 11:03
if RegKeyExists(HKLM, SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1) then MsgBox('ключ в реестре не удален', mbInformation, MB_OK);
http://i38.fastpic.ru/big/2012/0516/25/a2172c976dd02edfd041dd625a29b625.png (http://fastpic.ru/)
R.i.m.s.k.y.
16-05-2012, 11:05
ы кавыки забыл
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then MsgBox('ключ в реестре не удален', mbInformation, MB_OK);
bugmenotagain
16-05-2012, 11:11
ы кавыки забыл
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then MsgBox('ключ в реестре не удален', mbInformation, MB_OK); »
реестр чистый, но
http://i36.fastpic.ru/big/2012/0516/f8/82d24132a700e0fce7d2478dbd355ef8.png (http://fastpic.ru/)
R.i.m.s.k.y.
16-05-2012, 11:13
я бы делал вот так
[*Code]
procedure RD(Dir:string);
begin
Exec('cmd.exe', ' /c rd /S /Q ' + Add_Quotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
Exec('cmd.exe', ' /c rd /S /Q ' + '"'+Dir+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) then begin
if (IsComponentSelected('port')) then begin
RD(ExpandConstant('{app}\uninstall'));
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
if RegKeyExists(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
end; //if (IsComponentSelected('port'))
end; //if (CurStep = ssDone)
end; //CurStepChanged
реестр чистый, но »
а в остальном все хорошо?
Чтобы убрать отладочное сообщение удали строчки с MSGBox
bugmenotagain
16-05-2012, 11:16
Exec('cmd.exe', ' /c rd /S /Q ' + Add_Quotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
ругается. кажется опять кавычки
перед Add_Quotes
*Code] procedure RD(Dir:string); begin Exec('cmd.exe', ' /c rd /S /Q ' + Add_Quotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); Exec('cmd.exe', ' /c rd /S /Q ' + '"'+Dir+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); end; procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if (CurStep = ssDone) then begin if (IsComponentSelected('port')) then begin RD(ExpandConstant('{app}\uninstall')); if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') if RegKeyExists(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') end; //if (IsComponentSelected('port')) end; //if (CurStep = ssDone) end; //Cu »
этот код к чему?
R.i.m.s.k.y.
16-05-2012, 11:18
bugmenotagain, ты либо используй мой вариант, либо не мой
Я привел вариант как бы сделал я. Ты сам то можешь прочитать чего накопировал? нет? думаешь мы должны?
RD рабочий из моего инсталла
я забыл добавить Add_Quotes, в башке компилятора то нет
[*Code]
function Add_Quotes(strng : String):String;
begin
Result := '"' + strng + '"';
end;
procedure RD(Dir:string);
begin
Exec('cmd.exe', ' /c rd /S /Q ' + AddQuotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
Exec('cmd.exe', ' /c rd /S /Q ' + '"'+Dir+'"',ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) then begin
if (IsComponentSelected('port')) then begin
RD(ExpandConstant('{app}\uninstall'));
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
if RegKeyExists(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then RegDeleteKeyIncludingSubkeys(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
end; //if (IsComponentSelected('port'))
end; //if (CurStep = ssDone)
end; //CurStepChanged
bugmenotagain
16-05-2012, 11:28
R.i.m.s.k.y.,
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
then;
end; //if (IsComponentSelected('port'))
что еще удалить?
R.i.m.s.k.y.
16-05-2012, 11:34
bugmenotagain,
http://ogeeku.com/wp-content/uploads/2011/08/godzilla-facepalm.jpg
[*Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) then begin
if (IsComponentSelected('port')) then begin
Exec(ExpandConstant('{app}\uninstall\unins000.exe'), ' /VERYSILENT', ExpandConstant('{app}\uninstall'), SW_SHOW, ewNoWait, ResultCode);
// MsgBox('папка с удалятором = ' + ExpandConstant('{app}\uninstall'), mbInformation, MB_OK);
// if RegKeyExists(HKLM, SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1) then MsgBox('ключ в реестре не удален', mbInformation, MB_OK);
end; //if (IsComponentSelected('port'))
end; //if (CurStep = ssDone)
end; //CurStepChanged
bugmenotagain
16-05-2012, 11:40
точно. Я не программист, и код pascal для меня как китайский.
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if (CurStep = ssDone) then begin
if (IsComponentSelected('port')) then begin
Exec(ExpandConstant('{app}\uninstall\unins000.exe'), ' /VERYSILENT', ExpandConstant('{app}\uninstall'), SW_SHOW, ewNoWait, ResultCode);
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1')
then;
end; //if (IsComponentSelected('port'))
end; //if (CurStep = ssDone)
end; //CurStepChanged у меня так и все работает.
bugmenotagain
16-05-2012, 12:27
Совет
при выборе портативной кажется не разумно копировать её в Programm Files
лучше в "Мои документы" или на Рабочий стол (имею в виду делать путь установки таким в эдите пути на соответствующей странице) »
по умолчанию просится. думаю изменить папку не составит труда
скажите тут есть темы на другие установщики? inno setup , nsis слишком для программистов, чтоб делать удобные плюшки. а стандартные функции желают лучшего.
[qCode]
var Check: array [0..2] of TCheckBox;
procedure Check0(Sender: TObject);
begin
if Check[0].Checked then
begin Check[1].
Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False)
and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[0].Checked := True; end;
procedure Check1(Sender: TObject);
begin
if Check[1].Checked then begin
Check[0].Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False)
and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[1].Checked := True;
end;
procedure Check2(Sender: TObject);
begin if Check[2].Checked then
begin
Check[0].Checked := False;
Check[1].Checked := False;
end;
if (Check[0].Checked = False)
and (Check[1].Checked = False)
and (Check[2].Checked = False) then
Check[2].Checked := True;
end;
procedure InitializeWizard();
begin Check[0] := TCheckBox.Create(WizardForm);
with Check[0] do begin Parent := WizardForm.SelectDirPage;
Checked := True;
Top := ScaleY(100);
OnClick := @Check0;
Caption := 'Чекбокс №1';
end;
Check[1] := TCheckBox.Create(WizardForm);
with Check[1] do begin Parent := WizardForm.SelectDirPage;
Top := ScaleY(120); OnClick := @Check1;
Caption := 'Чекбокс №2'; end;
Check[2] := TCheckBox.Create(WizardForm);
with Check[2] do begin Parent := WizardForm.SelectDirPage;
Top := ScaleY(140); OnClick := @Check2;
Caption := 'Чекбокс №3'; end; end;
такой скрипт надо настрочить, чтобы сделать пару жалких чекбокса.
bugmenotagain, скрой код, слишком большой.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.