PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [59] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

ZVSRus
18-12-2015, 09:03
Как убрать это сообщение:

BMODS
18-12-2015, 12:12
Как в компоненты добавить установку шрифтов в папку Windows fonts.

kotyarko@fb
18-12-2015, 12:36
BMODS, [Files]
Source: "Font.otf"; DestDir: "{fonts}"; FontInstall: "Font_Real_Name"; Flags: fontisnttruetype onlyifdoesntexist uninsneveruninstall
Source: "Font2.ttf"; DestDir: "{fonts}"; FontInstall: "Font2_Real_Name"; Flags: onlyifdoesntexist uninsneveruninstall
Всё это есть в справке.

BMODS
18-12-2015, 13:40
kotyarko@fb, а путь как указать ?

BMODS
18-12-2015, 13:58
Примеры тут были знаю может кто скинуть :)

kotyarko@fb
18-12-2015, 14:40
а путь как указать ? »Путь чего?

Dodakaedr
18-12-2015, 16:49
Подскажите, как можно заменить несколько десятков значений на свое в ini файле?
Имеется ini файл на 1130 строк и в разных секциях в разных ключах есть определенное значение (%Programm Path%) вот и требуется его заменить. Через секцию [INI] не вариант.

Но только почему то, как и да этой процедуры выдает сообщение,
что часть элементов осталась, вы можете остальное удалить вручную.
Хотя ничего нет, все удалилось. »
Так пробовали?[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application


Type: FilesAndOrDirs; Name: {app};

[co[u]de]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then // или usUninstall
begin
UnloadDLL(ExpandConstant('{app}\msimg32.dll'));
DeleteFile(ExpandConstant('{app}\msimg32.dll'));
end;
//if CurUninstallStep = usDone then DelTree(ExpandConstant('{app}'), True, True, True);
end;

ZVSRus
18-12-2015, 18:28
Так пробовали?
Так помогло. Только выдает сообщение, картинка чуть выше.
Где-то в системе наверное остались папки, (или в реестре записи) не могу найти.
Это сообщение напрягает.

Dodakaedr
18-12-2015, 21:08
Только выдает сообщение, картинка чуть выше. »
Если хвостов действительно нет, то можно вот так сделать:[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Messages]
UninstalledMost=Программа My Application была полностью удалена с вашего компьютера.


Type: FilesAndOrDirs; Name: {app};

[co[u]de]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then // или usUninstall
begin
UnloadDLL(ExpandConstant('{app}\msimg32.dll'));
DeleteFile(ExpandConstant('{app}\msimg32.dll'));
end;
//if CurUninstallStep = usDone then DelTree(ExpandConstant('{app}'), True, True, True);
end;

ZVSRus
18-12-2015, 21:57
Если хвостов действительно нет
Скорее всего остались хвосты после этих записей.

Name: "{userstartmenu}\Light Image Resizer 4"; Filename: "{app}\{#MyAppExeName}"; Check: PanelPuskCheck and UserIconCheck;
Name: "{commonstartmenu}\Light Image Resizer 4"; Filename: "{app}\{#MyAppExeName}"; Check: PanelPuskCheck and AllUserIconCheck;

Как зайти в эти папки?
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ObviousIdea\Light Image Resizer 4\Light Image Resizer 4.lnk
C:\Users\ZVSRus\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ObviousIdea\Light Image Resizer 4\Light Image Resizer 4.lnk
Если так:

Procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) then
UnloadDLL(ExpandConstant('{app}\msimg32.dll'));
DeleteFile(ExpandConstant('{app}\msimg32.dll'));
DelTree(ExpandConstant('{app}'), True, True, True);
RemoveDir(ExpandConstant('{pf}\ObviousIdea'));
RemoveDir(ExpandConstant('{userstartmenu}\ObviousIdea'));
RemoveDir(ExpandConstant('{commonstartmenu}\ObviousIdea'));
end;

Так папки удалятся или нет

Dodakaedr
18-12-2015, 22:10
Так папки удалятся или нет »
Возьмите и проверьте. Но ярлыки если создавались инсталлятором, то они и будут удалены созданным деинсталлятором.

ZVSRus
19-12-2015, 14:38
В секции Run есть ссылка на запуск интернет страницы через чекбокс на финишной странице.
Как прикрутить эту ссылку к кнопкам на диалоговом окне вместо финишной страницы. (FinishedPage) пропущена.

[Run]
Filename: "http://www.obviousidea.com/windows-software/light-image-resizer/how-to-resize-a-photo/"; Description: "{cm:LaunchGuide,Light Image Resizer 4}"; MinVersion: 0.0,5.0; Flags: shellexec postinstall skipifsilent nowait

Dodakaedr
19-12-2015, 18:34
Как прикрутить эту ссылку к кнопкам на диалоговом окне вместо финишной страницы »
Создайте задачу в tasks либо отдельно чекбокс и открывайте ссылку по окончанию установки.
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableReadyPage=yes
DisableFinishedPage=yes

[Code]
var
LinkProg: TNewCheckBox;

procedure InitializeWizard();
begin
LinkProg := TNewCheckBox.Create(WizardForm);
LinkProg.Parent := WizardForm.SelectDirPage;
LinkProg.Caption := 'Посетить сайт программы';
LinkProg.SetBounds(ScaleX(1), ScaleY(WizardForm.DirEdit.Top + 25), ScaleX(148), ScaleY(20));
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
r: integer;
begin
if CurStep = ssDone then
begin
MsgBox('Установка завершена', mbInformation, MB_OK);
if LinkProg.Checked then
ShellExec('', 'http://www.obviousidea.com/windows-software/light-image-resizer/how-to-resize-a-photo/', '','', SW_SHOW, ewNoWait, r);
end;
end;
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
DisableFinishedPage=yes

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
r: integer;
begin
if CurStep = ssDone then
begin
if MsgBox('Установка завершена!'+#13#10'Посетить сайт программы?', mbInformation, MB_YESNO) = IDYES then
ShellExec('', 'http://www.obviousidea.com/windows-software/light-image-resizer/how-to-resize-a-photo/', '','', SW_SHOW, ewNoWait, r);
end;
end;
Кнопку на диалоговом окне, насколько я знаю не создать.

vadjliss
19-12-2015, 21:04
парни помогите или подскажите скрипт
http://fs5.directupload.net/images/151219/temp/xydfejzj.jpg (http://fs5.directupload.net/images/151219/xydfejzj.jpg)

ZVSRus
19-12-2015, 21:30
Кнопку на диалоговом окне, насколько я знаю не создать.
Оба скрипта работают. Все хорошо.
Но хотелось бы запуск страницы прикрутить к скрипту ниже.
Прикрутить к чекбоксу.
Скрипт


//#include "botva2.iss"

[Setup]
AppName=ACDSee 5.0 Power Pack
AppVersion=ACDSee 5.0 Power Pack
DefaultDirName={pf}\ACD Systems
DisableFinishedPage=yes
OutputDir=.
UsePreviousAppDir=no
UsePreviousGroup=no
//SetupIconFile=icon.ico

[files]
//Source: "b2p.dll"; DestDir: "{tmp}"; Flags: dontcopy
//Source: "botva2.dll"; DestDir: "{tmp}"; Flags: dontcopy
//Source: "Icon.png"; DestDir: "{tmp}"; Flags: dontcopy

[ Code]
//function InitializeSetup(): Boolean;
//begin
//if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
//if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
//if not FileExists(ExpandConstant('{tmp}\icon.png')) then ExtractTemporaryFile('icon.png');
//Result := True;
//end;

function ShowFinishedForm(): Boolean;
var
FinishedForm: TSetupForm;
begin
FinishedForm := CreateCustomForm;
FinishedForm.Position:=poScreenCenter;
try
FinishedForm.ClientWidth := ScaleX(310);
FinishedForm.ClientHeight := ScaleY(133);
FinishedForm.BorderStyle := bsSingle;
FinishedForm.BorderIcons := [biSystemMenu];
FinishedForm.Caption := 'Установка — ACDSee 5.0 Power Pack';
FinishedForm.CenterInsideControl(WizardForm, False);

// ImgLoad(FinishedForm.Handle, ExpandConstant('{tmp}\icon.png'), ScaleX(20), ScaleY(22), ScaleX(40), ScaleY(40), True, False);
// ImgApplyChanges(FinishedForm.Handle);

with TNewButton.Create(FinishedForm) do
begin
Parent := FinishedForm;
SetBounds(ScaleX(110), ScaleY(100), ScaleX(90), ScaleY(25));
ModalResult := mrYes;
Caption := SetupMessage(msgButtonYes);
end;
with TNewStaticText.Create(FinishedForm) do
begin
Parent:= FinishedForm;
Caption:='Все готово, приятного пользования!'+ #13#10 +
''+ #13#10 +
'Запустить программу сейчас?';
Left:=70;
Top:=20;
Font.Name:= 'Tahoma';
Font.Size:= 9;
Font.Color:=clBlack;;
end;
with TNewButton.Create(FinishedForm) do
begin
Parent := FinishedForm;
SetBounds(ScaleX(210), ScaleY(100), ScaleX(90), ScaleY(25));
ModalResult := mrNo;
Caption := SetupMessage(msgButtonNo);
end;
with TNewCheckBox.Create(FinishedForm) do
begin
Parent := FinishedForm;
Caption := 'Посетить сайт программы';
SetBounds(ScaleX(10), ScaleY(70), ScaleX(150), ScaleY(25));
end;

Result := (FinishedForm.ShowModal = mrYes);
finally
FinishedForm.Free;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
//r: integer;
begin
case CurStep of
ssDone:
if ShowFinishedForm then
Exec(ExpandConstant('{pf}\ArtIcons Pro\ARTICONS.exe'), '', '', SW_SHOW, ewNoWait, ResultCode);
// if MsgBox('Посетить сайт программы?', mbInformation, MB_YESNO) = IDYES then
// ShellExec('http://www.obviousidea.com/windows-software/light-image-resizer/how-to-resize-a-photo/', '','', SW_SHOW, ewNoWait, r);
end;
end;

Nordek
20-12-2015, 01:56
помогите или подскажите скрипт »OuterNotebook:
http://i2.imageban.ru/thumbs/2015.12.20/12e9c5a27c5b03a02493d2b19549d500.png (http://i2.imageban.ru/out/2015/12/20/12e9c5a27c5b03a02493d2b19549d500.png)

vadjliss
20-12-2015, 07:58
мне нужно саму рамку увеличить не внутриннию а наружную
http://fs5.directupload.net/images/151219/temp/xydfejzj.jpg

nik1967
20-12-2015, 08:38
vadjliss, кликаешь на любое место WizardForm и растягиваешь, как тебе надо.

vadjliss
20-12-2015, 08:43
пишет что блокировано

Nordek
20-12-2015, 09:29
мне нужно саму рамку увеличить не внутриннию а наружную »
пишет что блокировано »На снимке вы показываете именно то:
http://i1.imageban.ru/thumbs/2015.12.20/d9b1401fcb10d5cc337684349fa7e496.png (http://i1.imageban.ru/out/2015/12/20/d9b1401fcb10d5cc337684349fa7e496.png) http://i4.imageban.ru/thumbs/2015.12.20/112c443cfdd1e38bc59bd8593ad2039b.png (http://i4.imageban.ru/out/2015/12/20/112c443cfdd1e38bc59bd8593ad2039b.png)

что я вам ответил в #1176 (http://forum.oszone.net/post-2586603-1176.html) сообщении.

Или, как вы собрались увеличивать OuterNotebook, если WizardForm не увеличена? Т.е у WizardForm не хватает области для дальнейшего растягивания, чтобы растянуть OuterNotebook нужно сначала растянуть WizardForm:
http://i6.imageban.ru/thumbs/2015.12.20/269c386e44e3939f48beafe323c173e7.png (http://i6.imageban.ru/out/2015/12/20/269c386e44e3939f48beafe323c173e7.png) http://i6.imageban.ru/thumbs/2015.12.20/723c9ee44a65471cd77c8bde089ad77c.png (http://i6.imageban.ru/out/2015/12/20/723c9ee44a65471cd77c8bde089ad77c.png)

а уже тогда растягивать OuterNotebook:
http://i6.imageban.ru/thumbs/2015.12.20/46399bfebd1eb6b8d238e88f9abc7241.png (http://i6.imageban.ru/out/2015/12/20/46399bfebd1eb6b8d238e88f9abc7241.png) http://i4.imageban.ru/thumbs/2015.12.20/94f6dd533705bf2703c2af09ee082804.png (http://i4.imageban.ru/out/2015/12/20/94f6dd533705bf2703c2af09ee082804.png)

Или вы на столько изменили форму, что невозможно определить что вам нужно, и в действительности вам нужно растянуть InnerNotebook?
InnerNotebook:
http://i6.imageban.ru/thumbs/2015.12.20/bc68d8e48cc5e34fba1d38fed89631ec.png (http://i6.imageban.ru/out/2015/12/20/bc68d8e48cc5e34fba1d38fed89631ec.png) http://i1.imageban.ru/thumbs/2015.12.20/28e4c4cbb3f067806b25bd022603ecfc.png (http://i1.imageban.ru/out/2015/12/20/28e4c4cbb3f067806b25bd022603ecfc.png) http://i4.imageban.ru/thumbs/2015.12.20/83bb4a0cb87fa25f6468c9cda3c3fd63.png (http://i4.imageban.ru/out/2015/12/20/83bb4a0cb87fa25f6468c9cda3c3fd63.png)




© OSzone.net 2001-2012