Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
Dodakaedr, А можно поподробнее
ZVSRus,
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableProgramGroupPage=yes
[Code]
var
GroupBox1,GroupBox2: TNewGroupBox;
procedure InitializeWizard();
begin
GroupBox1 := TNewGroupBox.Create(WizardForm);
with GroupBox1 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(75);
Width := ScaleX(417);
Height := ScaleY(65);
end;
GroupBox2 := TNewGroupBox.Create(WizardForm);
with GroupBox2 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(150);
Width := ScaleX(417);
Height := ScaleY(65);
end;
with WizardForm.DirEdit do
begin
Left := ScaleX(10);
Top := ScaleY(20);
Width := ScaleX(310);
Parent := GroupBox1;
end;
with WizardForm.DirBrowseButton do
begin
Left := ScaleX(330);
Top := ScaleY(20);
Parent := GroupBox1;
end;
with WizardForm.GroupEdit do
begin
Left := ScaleX(10);
Top := ScaleY(20);
Width := ScaleX(310);
Parent := GroupBox2;
end;
with WizardForm.GroupBrowseButton do
begin
Top := ScaleY(20);
Left := ScaleX(330);
Parent := GroupBox2;
end;
end;
Ребята помогите пожалуйста.
Скрипт
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.
UsePreviousAppDir=no
UsePreviousGroup=no
[Code ]
var
Component: TWizardPage;
Panel1: TPanel;
Bevel1: TBevel;
InstallerGroupBox: TNewGroupBox;
Installer: TNewRadioButton;
Portable: TNewRadioButton;
IconsGroupBox: TNewGroupBox;
DesktopIcon: TNewCheckBox;
PuskIcon: TNewCheckBox;
PanelZadach: TNewCheckBox;
PanelPusk: TNewCheckBox;
function InstallerCheck: Boolean;
begin
Result := Installer.Checked;
end;
function PortableCheck: Boolean;
begin
Result := Portable.Checked;
end;
function DesktopIconCheck: Boolean;
begin
Result:= DesktopIcon.Checked;
end;
function PuskIconCheck: Boolean;
begin
Result:= PuskIcon.Checked;
end;
function PanelZadachCheck: Boolean;
begin
Result:= PanelZadach.Checked;
end;
procedure CompClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
Portable:
begin
DesktopIcon.Checked:=False;
DesktopIcon.Enabled:= DesktopIcon.Checked;
PuskIcon.Checked:=False;
PuskIcon.Enabled:= PuskIcon.Checked;
PanelZadach.Checked:=False;
PanelZadach.Enabled:= PanelZadach.Checked;
PanelPusk.Checked:=False;
PanelPusk.Enabled:= PanelPusk.Checked;
end;
Installer:
begin
DesktopIcon.Checked:=True;
DesktopIcon.Enabled:= DesktopIcon.Checked;
PuskIcon.Checked:=True;
PuskIcon.Enabled:= PuskIcon.Checked;
PanelZadach.Checked:=true;
PanelZadach.Enabled:= PanelZadach.Checked;
PanelPusk.Checked:=True;
PanelPusk.Enabled:= PanelPusk.Checked;
end;
end;
end;
procedure InitializeWizard();
begin
Component := CreateCustomPage(wpWelcome, 'Выбор типа установки', '...');
with WizardForm.InnerNotebook do
begin
Left := ScaleX(20);
Top := ScaleY(60);
Width := ScaleX(457);
Height := ScaleY(250);
end;
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Parent := Component.Surface;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(457);
Height := ScaleY(250);
end;
Bevel1 := TBevel.Create(WizardForm);
with Bevel1 do
begin
Parent := Panel1;
Left := ScaleX(5);
Top := ScaleY(5);
Width := ScaleX(447);
Height := ScaleY(240);
end;
InstallerGroupBox := TNewGroupBox.Create(WizardForm);
with InstallerGroupBox do
begin
Parent := Panel1;
Left := ScaleX(10);
Top := ScaleY(8);
Width := ScaleX(210);
Height := ScaleY(64);
Caption := 'Тип установки:';
end;
Installer := TNewRadioButton.Create(WizardForm);
with Installer do
begin
Parent := InstallerGroupBox;
Left := ScaleX(10);
Top := ScaleY(14);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Установка обычной версии';
Checked := True
OnClick:=@CompClick;
end;
Portable := TNewRadioButton.Create(WizardForm);
with Portable do
begin
Parent := InstallerGroupBox;
Left := ScaleX(10);
Top := ScaleY(39);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Распаковка портативной версии';
OnClick:=@CompClick;
end;
IconsGroupBox := TNewGroupBox.Create(WizardForm);
with IconsGroupBox do
begin
Parent := Panel1;
Left := ScaleX(10);
Top := ScaleY(80);
Width := ScaleX(210);
Height := ScaleY(114);
Caption := 'Компоненты:';
end;
DesktopIcon := TNewCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent := IconsGroupBox;
Left := ScaleX(10);
Top := ScaleY(14);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Ярлык на рабочем столе';
Checked := True
end;
PuskIcon := TNewCheckBox.Create(WizardForm);
with PuskIcon do
begin
Parent := IconsGroupBox;
Left := ScaleX(10);
Top := ScaleY(39);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Ярлык в меню Пуск';
Checked := True
end;
PanelZadach := TNewCheckBox.Create(WizardForm);
with PanelZadach do
begin
Parent := IconsGroupBox;
Left := ScaleX(10);
Top := ScaleY(64);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Закрепить на панели задач';
Checked := False
end;
PanelPusk := TNewCheckBox.Create(WizardForm);
with PanelPusk do
begin
Parent := IconsGroupBox;
Left := ScaleX(10);
Top := ScaleY(89);
Width := ScaleX(195);
Height := ScaleY(17);
Caption := 'Закрепить в меню Пуск';
Checked := False
end;
end;
Как сделать что-бы при возвращении с Portable распаковки на Installer установку
два нижних чекбокса были видны но галочки не стояли.
Нужно что-то поменять, не знаю что.
ZVSRus, Так
Installer:
begin
DesktopIcon.Checked:=True;
DesktopIcon.Enabled:= DesktopIcon.Checked;
PuskIcon.Checked:=True;
PuskIcon.Enabled:= PuskIcon.Checked;
PanelZadach.Checked:=False;
PanelZadach.Enabled:=True;
PanelPusk.Checked:=False;
PanelPusk.Enabled:= True;
end;
end;
end;
habib2302
05-12-2015, 18:18
помогите переместить на задний план NewGroupBox1
[Code]
var
NewGroupBox1: TNewGroupBox;
procedure InitializeWizard;
begin
with WizardForm.DirBrowseButton do
begin
Left := ScaleX(326);
Top := ScaleY(128);
end;
with WizardForm.DirEdit do
begin
Left := ScaleX(16);
Top := ScaleY(129);
Width := ScaleX(300);
end;
{ NewGroupBox1 }
NewGroupBox1 := TNewGroupBox.Create(WizardForm);
with NewGroupBox1 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(104);
Width := ScaleX(417);
Height := ScaleY(57);
Caption := 'NewGroupBox1';
end;
NewGroupBox1.TabOrder := 5;
end;
Мой скрипт (https://yadi.sk/d/nZry8Xtekzdqz)
habib2302,
Пробуйте
http://rghost.ru/8td6vQNGj
помогите переместить на задний план NewGroupBox1
Если Вы имеете ввиду NewCroupBox1 сделать подложкой под стандартные диалоги,
то чуть выше скрипт от vint56
Всем Доброе время суток.
Может кто знает, как в оригинальный INNO установщик запихнуть DLL,ку,
и прописать ее в реестре, что-бы при деинсталляции она удалялась.
vadjliss
13-12-2015, 14:17
парни что сделать если программа больше 5 гигов,а то выдаёт ошибку
я в setap прописал DiskSliceSize=1987570657
результат нулевой
http://fs5.directupload.net/images/151213/temp/3ltx5q6w.jpg (http://fs5.directupload.net/images/151213/3ltx5q6w.jpg)
kotyarko@fb
13-12-2015, 20:46
vadjliss, [Setup]
DiskSpanning=yes
Stealthmax
13-12-2015, 21:55
Доброе время суток. Помогите с кодом. Пытаюсь выполнить удаление файлов через unlocker, но происходит "exit code: 1" после запуска »
Дружище, зачем такой изврат? Все банальнее и проще:[_Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
ErrorCode: Integer;
begin
case CurUninstallStep of
usPostUninstall:
begin
//отмена регистрации *.dll
Exec(ExpandConstant('{sys}')+'\regsvr32.exe', '/u /s ' + ExpandConstant('{pf}') + '\WinRar\RarExt.dll', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
//освобождаем dll-ку перезапуском Проводника
Exec('cmd', '/C WMIC PROCESS WHERE Name="explorer.exe" delete & WMIC PROCESS WHERE Name="explorer.exe" call SetPriority 64', '', sw_hide, ewWaitUntilTerminated, ErrorCode);
//Exec('cmd', '/C WMIC PROCESS WHERE Name="explorer.exe" CALL Terminate', '', sw_hide, ewWaitUntilTerminated, ErrorCode); // либо этот вариант
//далее удаляем папки, файлы
end;
end;
В любом случае, Unlocker при выполнении команды принудительно перезапустит оболочку Проводника. Так что лишние телодвижения ни к чему.
Парни подскажите, как сделать чтобы файл удалялся вместе со всеми файлами при деинсталляции.
Файл (DLL) добавлен в дистрибутив отдельно для регистрации.
sergey3695
17-12-2015, 17:14
ZVSRus,
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app};
sergey3695,
[UninstallDelete]
Type: FilesAndOrDirs; Name: {app};
Результат нулевой, как не удалялся, так и не удаляется.
Наверное надо как-то через скрипт.
Файл (DLL) добавлен в дистрибутив отдельно для регистрации. »Смотрите флаг regserver - При установке регистрирует, при деинсталляции отменяет регистрацию.
Т.е:
[Files]
Source: example.dll; DestDir: {app}; Flags: regserver
Source: example.dll; DestDir: {app}; Flags: regserver
Результат нулевой. Деинстоллятором не удаляется. Вручную легко.
Когда msimg32.dll находится в папке с программой, программа становится зарегестрированной.
Если ее убрать программа не зарегестрирована.
Прога Light Image Resizer 4.7.6.1
ZVSRus, Наверное надо как-то через скрипт. »
Procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) then
UnloadDLL(ExpandConstant('{app}\msimg32.dll'));
DeleteFile(ExpandConstant('{app}\msimg32.dll'));
end;
Наверное надо как-то через скрипт
DLL,ка удалилась но остались папки в которой она находилась.
наверное надо что-то дописать к процедуре.
msimg32.dll »GDIEXT Client DLL уже есть и в Windows XP и в Windows 7 в папке System32.
наверное надо что-то дописать »
DelTree(ExpandConstant('{app}'), True, True, True);
DelTree(ExpandConstant('{app}'), True, True, True);
Удаляет все в чистую в таком виде:
UnloadDLL(ExpandConstant('{app}\msimg32.dll'));
DeleteFile(ExpandConstant('{app}\msimg32.dll'));
DelTree(ExpandConstant('{app}'), True, True, True);
RemoveDir(ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{pf}\ObviousIdea'));
Но только почему то, как и да этой процедуры выдает сообщение,
что часть элементов осталась, вы можете остальное удалить вручную.
Хотя ничего нет, все удалилось.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC