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

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

Автор: moonlight82
Дата сообщения: 14.06.2011 18:54
Despofix
WizardForm.ComponentsList.Font.Color := clblack;
Автор: Despofix
Дата сообщения: 14.06.2011 18:56
moonlight82
это меняет текст у всех элементов, а мне надо тока у подчеркнутых

Добавлено:
как я понял надо компонент лист делать через код, может кто нить даст кодик
Автор: YURSHAT
Дата сообщения: 14.06.2011 22:58

Цитата:
как поменять местами страницу с компонентами и страницу выбора группы установки?

Сделай свою страницу и повесь на нее компоненты

Цитата:
как я понял надо компонент лист делать через код, может кто нить даст кодик

Юзай поиск, обсуждалось сотню раз...
Автор: Gnom3
Дата сообщения: 15.06.2011 11:23
Концепт нового инсталла для innoultra Вставка изображений на все 14 страниц инсталлятора Деинсталлятор еще не делал, чуть позже добавлю.
Основная фишка - под себя меняем только секции файлов, компонентов, задач, реестра, и т.п., в коде менять ничего не нужно

Скачать.
Автор: shidow
Дата сообщения: 15.06.2011 12:56
Хочу прикрутить к инсталлу статус панель. Пробовал использовать STS от Shegorat но там пропадает все содержимое страниц. Можно ли создать панель другим способом?
Автор: Gnom3
Дата сообщения: 15.06.2011 13:24
shidow найди строчки
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
и закоментируй их. Результат тебе не понравится, зато содержимое страниц не пропадет
Автор: shidow
Дата сообщения: 15.06.2011 14:13
Gnom3
Ну а серьезно как можно сделать?)
Автор: Gnom3
Дата сообщения: 15.06.2011 14:16
shidow
Модуль рассчитан на создание собственного наполнения страниц, а делается это руками и головой. в дефолтном инсталле этот модуль смотрется просто не будет.
Автор: sergey3695
Дата сообщения: 15.06.2011 16:23
Привет всем! Кто знает почему надпись "WizardForm.Position:=poscreencenter;" убирает пункт "о программе" и везде ли это работает?
Автор: Gnom3
Дата сообщения: 15.06.2011 19:55
Вторая версия концепта, сделан деинсталлятор, вся настройка скрипта вынесена в секцию [Setup]
Есть небольшие косяки, но это уже в выходные доделаю до финала.
Есть вопрос - можно сделать в виде модуля, чтоб нужно было только менять расположение родных элементов, и они автоматом заменяются из подключенного модуля. Насколько это необходимо?
Скачать.
Автор: Sergey_Demchuk
Дата сообщения: 16.06.2011 01:46
Может кто подсказать. В коде ниже нужно скопировать файл в папку пользователя (корневую).
Выдает ошибку 183, не может заменить файл ибо он уже существует. В чем загвоздка?

...
[Files]
Source: 1.txt; DestDir: {code:userpapka}; DestName:1.txt; Flags: ignoreversion
...
[Code]
const
MAX_PATH = 260;
CSIDL_PROFILE = $28;

function SHGetSpecialFolderPath(hwndOwner: HWND; lpszPath: PChar; nFolder: Integer; fCreate: BOOL): BOOL; external 'SHGetSpecialFolderPathA@shell32.dll stdcall';

function GetSpecialPath(CSIDL: Word): string;
var
s: string;
begin
SetLength(s, MAX_PATH);
if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, True) then s := '';
Result:= PChar(s);
end;

function userpapka (A:string):string;
begin
Result:=GetSpecialPath(CSIDL_PROFILE);
end;
Автор: shidow
Дата сообщения: 16.06.2011 10:28
Возможно ли при помощи inno закрыть ярлыку выход в интернет?
Автор: ALExey1995
Дата сообщения: 16.06.2011 11:55
shidow
да юзай FirewallInstallHelper.dll
Автор: Despofix
Дата сообщения: 16.06.2011 14:59
возиожно ли изменить у папок на страницах selectdirpage и selectdirgroup page или же самому свои папки туда с нужным фоном ставить?
Автор: shidow
Дата сообщения: 16.06.2011 15:51
Дайте кто-нибудь пример текстурирования кнопок через botva2.
Автор: Edison007007
Дата сообщения: 16.06.2011 15:56
shidow
поискать не судьба?
http://rghost.ru/4019636
Автор: shidow
Дата сообщения: 16.06.2011 17:08
Edison007007
Я искал но которые находил все ссылки битые(

А еще дайте плиз пример вставки png изображений через botva2
Автор: PavZver
Дата сообщения: 16.06.2011 17:19
знаю как сделать чтобы компонент "патч 1.0.4.0" распаковывался.
но как сделать чтобы компонент "патч 1.6.1.0" запускался с экзешника лежащего в папке с инсталлом.
чтобы можно было выбрать или то, или то.
http://i23.fastpic.ru/big/2011/0616/76/cbd79aae09850a4045a9a4cd6b791f76.png
Автор: Gnom3
Дата сообщения: 16.06.2011 17:43
Sergey_Demchuk
Можно попробовать с таким набором флагов:

Код: [Files]
Source: 1.txt; DestDir: {code:userpapka}; Flags: overwritereadonly ignoreversion replacesameversion nocompression dontverifychecksum
Автор: Despofix
Дата сообщения: 16.06.2011 17:44
shidow
где то в промежутке с 26 страницы есть пример, от юршата
Автор: shidow
Дата сообщения: 16.06.2011 17:59
Despofix
Если ты про тот пример который он тебе давал то там ссылка битая(
Автор: Despofix
Дата сообщения: 16.06.2011 19:00
shidow
значит потерли так как там ботва новая
вот [more=код загрузки изображений на первую и последнюю страницу и растяжку wizardsmall image][Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
AppPublisher=YURSHAT

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

[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe

[Files]
Source: botva2.dll; Flags: dontcopy
Source: WizardImage.png; Flags: dontcopy
Source: WizardSmalImage.png; Flags: dontcopy

[Code]
var
SmallImage, WizardImage: Longint;
PageNameLabel, PageDescriptionLabel: TLabel;

function ImgLoad(Wnd :HWND; FileName: PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@{tmp}\botva2.dll stdcall delayload';
procedure ImgSetVisibility(img :Longint; Visible :boolean); external 'ImgSetVisibility@{tmp}\botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@{tmp}\botva2.dll stdcall delayload';
procedure gdipShutdown; external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';


function InitializeSetup: Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
Result:=True;
end;

procedure InitializeWizard;
begin
ExtractTemporaryFile('WizardImage.png');
ExtractTemporaryFile('WizardSmalImage.png');

WizardForm.WizardBitmapImage.Hide;
WizardForm.WizardBitmapImage2.Hide;
WizardForm.WizardSmallBitmapImage.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do begin
SetBounds(ScaleX(24), ScaleY(10), ScaleX(405), ScaleY(14));
AutoSize := False;
WordWrap := False;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do begin
SetBounds(ScaleX(40), ScaleY(26), ScaleX(389), ScaleY(25));
AutoSize := False;
WordWrap := True;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

WizardImage:=ImgLoad(WizardForm.WelcomePage.Handle,ExpandConstant('{tmp}\WizardImage.png'),ScaleX(0), ScaleY(0),ScaleX(164),ScaleY(314),True,True);
WizardImage:=ImgLoad(WizardForm.FinishedPage.Handle,ExpandConstant('{tmp}\WizardImage.png'),ScaleX(0), ScaleY(0),ScaleX(164),ScaleY(314),True,True);
SmallImage:=ImgLoad(WizardForm.MainPanel.Handle,ExpandConstant('{tmp}\WizardSmalImage.png'),ScaleX(0), ScaleY(0),ScaleX(497),ScaleY(58),True,True);

ImgApplyChanges(WizardForm.WelcomePage.Handle);
ImgApplyChanges(WizardForm.FinishedPage.Handle);
ImgApplyChanges(WizardForm.MainPanel.Handle);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;

ImgSetVisibility(WizardImage,False);

if CurPageID = wpWelcome then
ImgSetVisibility(WizardImage,True);
if CurPageID = wpFinished then
ImgSetVisibility(WizardImage,True);
end;

procedure DeInitializeSetup();
begin
gdipShutdown;
end;][/more]
Автор: vovka00723
Дата сообщения: 16.06.2011 20:16
почему в скрипте Need for Speed™ Undercover.iss v 2.4c [Final] от YURSHAT
в слайдшоу слайды показываются не с самого первого, а со второго
может кто-нибудь помочь это исправить?
Автор: Sergey_Demchuk
Дата сообщения: 16.06.2011 20:58
Gnom3

Цитата:
Можно попробовать с таким набором флагов:

Ничего подобного, как было так и осталось.
Для эксперимента, попробовал поменять
Result:=GetSpecialPath(CSIDL_PROFILE);
на
Result:='C:\Users\User';

Теперь работает. Вопрос теперь, что не так в вызове Result:=GetSpecialPath(CSIDL_PROFILE) ??
MsgBox(GetSpecialPath(CSIDL_PROFILE), mbInformation, MB_OK) выдает результат C:\Users\User, т.е. все должно быть верно.
Автор: Gnom3
Дата сообщения: 16.06.2011 21:07
Sergey_Demchuk

Мне както помог такой ход:

Код:
var
Path, s: string;
................................
Path:=GetSpecialPath(CSIDL_PROFILE);
Result:=Path;
Автор: Sergey_Demchuk
Дата сообщения: 16.06.2011 21:16
Gnom3
Ну ты пря провидец, я как раз этот метод и пробую, но не работает.

Цитата:
В твоем случае объявлен. но не использован A:string

Это точно не то, ведь Result:='C:\Users\User' работает.

Я вот пока так пробую
function userpapka (A:string):string;
var tempik: string;
begin
tempik:=GetSpecialPath(CSIDL_PROFILE)+'5';
MsgBox(tempik, mbInformation, MB_OK);
Result:=tempik;
//Result:='C:\Users\User';
end;

Но MsgBox возвращает значение C:\Users\User вместо C:\Users\User5
Почему спрашивается...
Автор: Gnom3
Дата сообщения: 16.06.2011 21:26
Sergey_Demchuk
мне тут в голову пришла, мысль - C:\Users\User - нужно добавить слеш в конце. и это нужно пробовать в функции SHGetSpecialFolderPath
Автор: Sergey_Demchuk
Дата сообщения: 16.06.2011 21:38
Нет
Result:='C:\Users\User'; без слеша и работает.
Автор: Gnom3
Дата сообщения: 16.06.2011 21:47
Sergey_Demchuk
Интересная задача, и главное - действительно непнятно, почему нельзя к пути добавить при вызове... Вот так пробовал?

Код: function userpapka(A: string) :string;
begin
A:=ExpandConstant(GetSpecialPath(CSIDL_PROFILE));
Result:=A;
//Result:='C:\Users\User';
end;
Автор: Sergey_Demchuk
Дата сообщения: 16.06.2011 22:21
Тоже самое пока

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


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