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

Статус
В этой теме нельзя размещать новые ответы.

CTpaHNICK

Мимокрокодил
Привет народ! Помогите плиз!
Вопрос1: Как сделать, чтобы размер шрифта не менялся в инсталляторе при изменение размера шрифта в системе (В винде)!?
Вопрос2: И как прикрутить тень на форму (окно инсталлятора), на которую применена маска!?
p.s. весь инет облазил не могу найти и все! Заранее спасибо!
 

LexBell

Борода
Супер модератор
За шрифт скажу, что никак. Можно попробовать WizardForm.Scaled := False; но я не пробовал.
Второго вопроса я не понял...
 

GVS276

Старожил
Проверенный
CTpaHNICK,
Вопрос2: И как прикрутить тень на форму (окно инсталлятора), на которую применена маска!?
Не большой пример:
[source="iss"]
Код:
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall'; 
function SetClassLong(hWnd: HWND; Index, NewLong: Longint): Longint; external 'SetClassLongA@user32 stdcall';

procedure InitializeWizard;
begin
 WizardForm.BorderStyle:= bsNone; //Скрываем границы инсталлятора 
 SetClassLong(WizardForm.Handle, (-26), GetWindowLong(WizardForm.Handle, (-26)) or $00020000); //Чтобы отрисовалась тень от окна инсталлятора
end;[/source]
 

Snoopak96

Старожил
AVMan,
Думаю ему всё же фейри-форма нужна, т.к. инсталл юзаеся на ботве.
WizardForm.Scaled := False
неа, не рубит это.

CTpaHNICK,
Можно получать значение PixelsPerInch и в зависимости от этого и выставлять размер шрифта, но это долгий и мутарный путь.
А вообще рекомендую глянуть Закос под R.G. Механики от меня (Самареклама :lamer: ) может чего и найдёшь интересного, но правда там косяк небольшой есть - доделывать лень.
 

CTpaHNICK

Мимокрокодил
AVMan спасибо! Как бы отрисовалось, но только по левому и нижниму краю формы!
Думаю ему всё же фейри-форма нужна, т.к. инсталл юзаеся на ботве.
Snoopak96 Как раз ты наверное об этом говоришь! Типа как у R.G. ... (Смотри скрин, у меня нет исходника)
Но у них вроде тоже касяк есть - когда нажимаешь на саму тень (не окно), то остается только тень, а вся форма со всеми компонентами пропадает - чтоб вернуть все, необходимо свернуть и развернуть окно инстала!

А вообще рекомендую глянуть Закос под R.G. Механики от меня (Самареклама :lamer: ) может чего и найдёшь интересного, но правда там косяк небольшой есть - доделывать лень.
Уже глянул, я так понимаю ты там используешь IsMyFont.dll для этого (с этим я типа разобрался)!? А какой касяк, если не секрет!?
 

Вложения

Mailchik

Старожил
Проверенный
K.I.S, при отмене и так запускается деинсталлятор и выполняет функции отката, просто его не видно, т.к. по умолчанию в isdone стоит /verysilent. измени её на /silent и деинсталлятор будет виден.
вот эта строчка:
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);


p.s. эта строчка находится в самом конце скрипта isdone_example, если ты его используешь конечно.
 
Последнее редактирование:

Snoopak96

Старожил
а вся форма со всеми компонентами пропадает - чтоб вернуть все, необходимо свернуть и развернуть окно инстала!
Тут нужно работать с событием OnMouseDown и ничто никуда пропадать не будет при кликах по форме - в общем думай.
А какой касяк, если не секрет!?
Эта библиотека отображает иероглифы иногда. Распространять решение этого я не буду. :crazy:
А вообще в таких инсталлах пока это только не удалось решить:

Отображения контролов в этой миниатюре.
 

LexBell

Борода
Супер модератор
Отображения контролов в этой миниатюре
В миниатюрах контролы и не отображаются. Присмотрись на разных программах - если программой можно управлять из миниатюры, то кнопками самой миниатюры, которые она сама создает. Ну, тоесть не сама, а программист, который поддержку Aero Pic добавил в свое приложение.
 

Snoopak96

Старожил
В миниатюрах контролы и не отображаются.
В миниатюре отображается только одна форма, а не обе. В прочем уже есть способ отображения любого количества форм в таксобаре (и включая ту на которой контролы), только хз будит ли оно в паблике.
 

LexBell

Борода
Супер модератор
Все элементы, видны
Графические элементы видны, раз уж на то пошло. И ими нельзя управлять. я про это говорил. А таскать вторую форму, только для того, что-бы рисовать на ней контролы... как-то это, хз... Я понимаю, конечно, что основная засада в том, что окно инсталла - изначально дочернее окно приложения инсталлятора. Но наверняка есть более приемлемое решение, чем таскание второй формы специально для Аэро Пик
 
Последнее редактирование:

CTpaHNICK

Мимокрокодил
Всем привет! Хотел бы вернуться к своему вопросу!
Вопрос: как прикрутить тень вокруг формы, на которую наложена маска!??
Пример:
Вопрос скорее всего к Snoopak96, т.к. в скрипте PSP, что-то бодобное реализовано!
p.s. Не откажусь от любой помощи! Заранее спасибо!
 
  • Like
Реакции: MMR

sergey3695

Ветеран
Модератор
RegWriteStringValue - помоему запись в реестр. А вот как удалять реестр в секции
Код:
? :)
 

YURSHAT

Тех. админ
Администратор
sergey3695,
[SOURCE="iss"]function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean;
//Deletes the specified key and all subkeys. Returns True if successful, False otherwise.

function RegDeleteKeyIfEmpty(const RootKey: Integer; const SubkeyName: String): Boolean;
//Deletes the specified subkey if it has no subkeys or values. Returns True if successful, False otherwise.

function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;
//Deletes the specified value. Returns True if successful, False otherwise.
[/SOURCE]
 

demon777

Новичок
Каким образом нужно исправить код чтобы обновление происходило без ошибок
Filename: {src}\Redist\pbsetup.exe; Parameters: "/q --i-accept-the-pb-eula /ag bf2142 --add-game-path=""{app}"" /u"; StatusMsg: "Обновление PunkBuster...";
После добавления игры должно стартовать обновление службы но оно не происходит.
 

sergey3695

Ветеран
Модератор
Обновлен пример в факе на то как сделать на своей форме выбор языка инсталлятора. За помощь спасибо винстану. Пример может быть и сделан кривенько, но по другому это врятли реализовать. Извените за флуд, решил написать сдесь только потому-что народ активно заходит в фак и поэтому задает идеотские вопросы (Пример:как растенуть картинку? (а ведь это есть в факе)).
З.Ы Собщения я не набираю, они мне не нужны. Просто достало читать идиотские вопросы.
 

murlakatamenka

Новичок
Каким образом нужно исправить код чтобы обновление происходило без ошибок
Filename: {src}\Redist\pbsetup.exe; Parameters: "/q --i-accept-the-pb-eula /ag bf2142 --add-game-path=""{app}"" /u"; StatusMsg: "Обновление PunkBuster...";
После добавления игры должно стартовать обновление службы но оно не происходит.
а что за ошибка?
глянул в своём скрипте, у меня для панкбастера следующее
Код:
#ifdef pb
Filename: "{src}\Redist\pbsvc.exe"; Parameters: "/--install --no-display --i-accept-the-pb-eula"; Tasks: soft\pb
#endif
 
Последнее редактирование:

demon777

Новичок
а что за ошибка?
глянул в своём скрипте, у меня для панкбастера следующее
Код:
#ifdef pb
Filename: "{src}\Redist\pbsvc.exe"; Parameters: "/--install --no-display --i-accept-the-pb-eula"; Tasks: soft\pb
#endif
Для pbsvc.exe у меня также, а вот для pbsetup.exe нужен мой код но он не хочет правильно обновлять базу данных PunkBuster. Просто идет добавление игры в PB а обновление клиента не происходит, хотя стоит флаг обновления:(
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху