|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
Ветеран Сообщения: 1265 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
Отправлено: 18:01, 29-08-2011 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Цитата al70:
Как вариант вставь MSGBox увидишь может путь не такой |
|
------- Отправлено: 18:55, 08-03-2012 | #961 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 189
|
Профиль | Отправить PM | Цитировать Johny777, у меня на совсем новой машине не запускался инсталлятор. Закрытый вариант - значит не для публики.
P.S. Скучал по форуму. Буду иногда появляться, если нужен вам. |
------- Отправлено: 22:57, 08-03-2012 | #962 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Rikill,
забил, тк на день раз 20 запускаю для теста основы и очень часто оба примера перестают работать через несколько повторных запусков у меня шрифт только в 6-8 местах использовался (как в главном меню халфы 2 с лямбдой) вот наглядный пример заменю на картинки разницы не будет никакой, а качество поднимется Цитата Rikill:
единственное, что для меня остаётся нерешённой проблемой (на руборде тоже спрашивал, как и здесь) - как добавить прокрутку скроллбокса колесом мыши вот такого например http://rghost.ru/36630976 |
|
Последний раз редактировалось Johny777, 09-03-2012 в 02:13. Отправлено: 01:52, 09-03-2012 | #963 |
Ветеран Сообщения: 1265
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
1. Совсем не обязательно рассылать сообщение WM_FONTCHANGE всем top-level окнам, достаточно послать форме. А можно и вообще Send/PostMessage убрать. 2. FontExists лучше делать до вызова AddFontResource, т.к. шрифт может быть уже установленым в системе и повторное его добавление это не есть хорошо. 3. Булев флаг IsCustomFontInstalled лишний. 4. Все это лучше не делать в функции InitializeSetup, когда формы еще нет. 5. Применить для уверенности функцию AddFontResourceEx, зная что шрифт будет использован только вызываемым приложением. |
|
Последний раз редактировалось El Sanchez, 10-03-2012 в 13:07. Причина: не удалялся шрифт Отправлено: 11:48, 09-03-2012 | #964 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать El Sanchez, одна беда - шрифт остается во временной папке. А рабочесть примера подтверждаю - у меня как раз такая система, на которой классический пример использования кастомного шрифта не работает, не зависимо от степени убитости системы. Повисает оповещательное сообщение. Немного исправляло положение замена SendMessage на PostMessage но результат нестабилен. Причина, как объяснили, какая-то программа ловит это сообщение и не пересылает его дальше. От степени убитости системы, повторюсь, это никак не зависит. Виноват криворукий программер, который написал какую-то обслуживающую утилитку, по всей видимости.
|
------- Отправлено: 12:00, 09-03-2012 | #965 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Здравствуйте, помогите поправить скрипт (с распаковкой arc), надо что бы он нормально распаковывался, а то он только сам архив расспаковывает, а надо что бы ещё он всё что в архиве расспаковывал. Пожалуйста помогите!!!!
[Setup] AppName=Sigerous Mod для COP AppVerName=Sigerous Mod v2.2 DefaultDirName=stalker InfoBeforeFile=embedded\InfoBefore.rtf WizardImageFile=embedded\WizardImage.bmp WizardSmallImageFile=embedded\WizardSmallImage.bmp Compression=zip [Languages] ;Name: rus; MessagesFile: compiler:Languages\Russian.isl [Files] Source: *.arc; DestDir: {app}; Flags: ignoreversion Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy [Icons] Name: {group}\Uninstall; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe [code] const PM_REMOVE = 1; function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall'; function TranslateMessage(const lpMsg: TMsg): BOOL; external 'TranslateMessage@user32.dll stdcall'; function DispatchMessage(const lpMsg: TMsg): Longint; external 'DispatchMessageA@user32.dll stdcall'; procedure AppProcessMessage; var Msg: TMsg; begin while PeekMessage(Msg, WizardForm.Handle, 0, 0, PM_REMOVE) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; type TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer; function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword; external 'wrapcallback@files:innocallback.dll stdcall'; function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl'; var ProgressBar: TNewProgressBar; ExtractFile: TNewStaticText; Button1: TButton; Cancel: Integer; procedure InitializeWizard(); begin ProgressBar := TNewProgressBar.Create(WizardForm); ExtractFile:=TNewStaticText.Create(WizardForm); with WizardForm.ProgressGauge do begin ProgressBar.Left := Left; ProgressBar.Top := Top + ScaleX(55); ProgressBar.Width := Width; ProgressBar.Height := Height; ProgressBar.Parent := WizardForm.InstallingPage; ProgressBar.max := 1000; ProgressBar.Position := 0; ExtractFile.parent:=WizardForm.InstallingPage; ExtractFile.autosize:=false; ExtractFile.Width := Width; ExtractFile.top:=Top + ScaleX(35); ExtractFile.caption:='Распаковка архива FreeArc'; end; end; procedure Button1OnClick(Sender: TObject); begin Cancel := -1; end; function FreeArcCallback (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer; var percents: Integer; begin if string(what)='filename' then //ExtractFile.Caption:=str else if (string(what)='progress') and (int2>0) then begin percents := (int1*1000) div int2; ProgressBar.Position := percents; ExtractFile.Caption:='Распаковано '+IntToStr(int1)+' из '+IntToStr(int2)+' мб ('+FloatToStr(percents/10)+'%)'; end; AppProcessMessage; Result := Cancel; end; procedure ExtractFreeArcArchive(arcname: String; destpath: String); var callback: longword; res: Integer; begin AppProcessMessage; callback:=WrapFreeArcCallback(@FreeArcCallback,4); //FreeArcCallback has 4 arguments Cancel := 0; try res := FreeArcExtract (callback, 'x', '-o+', '-dp'+destpath, '--', arcname, '', '', '', '', ''); if cancel<0 then MsgBox('Installation cancelled', mbInformation, MB_OK); if res<0 then MsgBox('Decompression failed with error code '+IntToStr(res)+'!', mbError, MB_OK); Button1.visible:=false; except MsgBox('Decompression failed!', mbError, MB_OK); Button1.visible:=false; end; DeleteFile(arcname); end; procedure CurStepChanged(CurStep: TSetupStep); var app: String; begin If CurStep=ssPostInstall then begin Button1:=TButton.create(WizardForm); Button1.parent:=WizardForm; Button1.width:=135; Button1.caption:='Cancel installation'; Button1.left:=260; Button1.top:=WizardForm.cancelbutton.top; Button1.OnClick:=@Button1OnClick; app := ExpandConstant('{app}'); ExtractFreeArcArchive(app+'\data.arc', app); ExtractFreeArcArchive(app+'\data.arc', app); end; end; |
Отправлено: 13:18, 09-03-2012 | #966 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:58, 09-03-2012 | #967 |
Старожил Сообщения: 184
|
Профиль | Отправить PM | Цитировать Всем добрый день!Помогите пожалуйста! Я никак не могу сделать разбиение на диски в скрипте ISDone. Я пробовал сделать так, как написано в справке, но у меня нечего не получается.Просто пишет что FreeArc-архив не найден.Помогите пожалуйста решить проблему.И не получается с распаковкой архивов в зависимости от выбранных компонентов.Наверно что-то со скриптом не так(делал как сказано в справке).
Вот скрипт - http://rghost.ru/36901450 |
------- Отправлено: 14:02, 09-03-2012 | #968 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 14:19, 09-03-2012 | #969 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 14:27, 09-03-2012 | #970 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Test | ferget | Тест-форум | 0 | 24-08-2011 01:25 | |
test | ! ! Aaa ! ! | Тест-форум | 0 | 23-04-2011 11:29 | |
test | Santa aka Snt | Тест-форум | 0 | 16-04-2011 22:35 | |
test | xolod. | Программное обеспечение Linux и FreeBSD | 0 | 19-04-2009 21:03 | |
Test memory | KEugeNik | Хочу все знать | 11 | 23-11-2003 23:11 |
|