|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z |
|
|
Отправлено: 16:09, 04-04-2018 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата lmiol:
Скрытый текст
#define MyAppName "bla"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "bla"
#define MyAppURL "https://www.bla.com/"
#define MyAppExeName "bla.exe"
[Setup]
AppId={{9B58D044-A076-47B2-B426-FC6CA298390A}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
AllowCancelDuringInstall=no
DefaultDirName={autopf}\{#MyAppName}
; bla-portable.zip extracted size
ExtraDiskSpaceRequired=8293003
WizardStyle=classic
[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl
[Messages]
SetupWindowTitle={#MyAppName}
[Files]
Source: 7za.exe; DestDir: {tmp}; Flags: deleteafterinstall
[Run]
Filename: {tmp}\7za.exe; Parameters: "x ""{tmp}\bla-portable.zip"" -o""{app}\"" * -r -aoa"; Flags: runhidden runascurrentuser;
Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}; Flags: nowait postinstall skipifdoesntexist
[Code]
function ShellExecute(hwnd: HWND; const lpOperation, lpFile, lpParameters, lpDirectory: string;
nShowCmd: Integer): THandle; external '[email protected] stdcall';
var
DownloadPage: TDownloadWizardPage;
procedure ModifyWizardForm;
begin
WizardForm.MainPanel.Hide;
WizardForm.Bevel.Hide;
WizardForm.Bevel1.Hide;
WizardForm.Width := ScaleX(640);
WizardForm.Height := ScaleY(270);
DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), nil);
end;
function InitializeSetup: Boolean;
begin
Result := WizardSilent;
if not Result then
ShellExecute(0, 'open', ExpandConstant('{srcexe}'), '/SILENT', '', SW_SHOWNORMAL);
end;
procedure InitializeWizard;
begin
ModifyWizardForm;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall:
begin
DownloadPage.Clear;
DownloadPage.Add('https://github.com/jrsoftware/issrc/archive/refs/heads/main.zip', 'bla-portable.zip', '');
DownloadPage.Show;
try
DownloadPage.Download;
except
if DownloadPage.AbortedByUser then
SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbCriticalError, MB_OK, IDOK);
finally
DownloadPage.Hide;
end;
end;
end;
end;
|
|
|
Отправлено: 11:25, 17-02-2022 | #741 |
|
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
мы его тестировали и остались недовольны. Во время загрузки он довольно сильно лагает (тормозит окно) из плюсов в нём только наличие прогрессбара в таскбаре пока идёт загрузка, но в остальном он довольно корявый. (по крайней мере на текущий момент) Проверяли мы на 6.2.0 Всё же хочется исправить те 2 кейса для IDP и использовать именно его (с нашим дизайном) |
|
|
Последний раз редактировалось lmiol, 17-02-2022 в 14:41. Отправлено: 12:48, 17-02-2022 | #742 |
|
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать lmiol, всё то, что предлагает господин El Sanchez не имеет ни тормозов, ни глюков. Лучше вежливо попросите его о помощи и этот парень продемонстрирует вам своё мастерство в таком духе, что после увиденного вам ничего не останется как сказать, что этот парень просто волшебник. El Sanchez виртуозно владеет компьютерными языками. Это тот человек, который не копирует код, а пишет его с нуля. Методов написания любого кода существует масса, но не каждый умеет так оптимизированно писать код, как господин El Sanchez.
|
|
Последний раз редактировалось dracosha, 17-02-2022 в 17:00. Отправлено: 16:31, 17-02-2022 | #743 |
|
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата lmiol:
Цитата lmiol:
Цитата lmiol:
Цитата lmiol:
Вы простите, но возникает вопрос - Вам "шашечки", или ехать? Маэстро El Sanchez дал Вам готовое решение по ваш компилятор..., причем, заметьте, абсолютно бесплатно... P.S. Ни чего личного... |
||||
|
Отправлено: 19:29, 17-02-2022 | #744 |
|
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата dracosha:
Цитата Vanadiy777:
У меня в посте указан плагин IDP, конкретный дизайн, конкретная проблема: я просил дополнить наш скрипт исправив проблему по двум кейсам. Я понимаю, что возможно Маэстро хотел как лучше и переписал на нативку, но факт остаётся фактом: это не то что мы просили. И не круто тут как чайки налетать на меня и делать вид, что я не благодарный. А также необязательно зачмокивать друг друга благодарностями на свои остроты. Конкретно претензий к Маэстро за то, что нативка лагает - нет. Ведь это проблема Inno Setup и это уже пройденный нами этап (повторюсь еще раз) Мы можем попытаться раздуть эту тему. Но я бы очень хотел сконцентрироваться на решении проблемы. Т.е. на финальном результате. От оплаты доработок нашего скрипта по двум кейсам в 1к я не отказываюсь Для защиты своей работы можете не выкладывать код, а локально собрать и во время звонка (гугл мит например) продемонстрировать работу установщика. Или записать видео показав работу двух кейсов. Мне кажется El Sanchez просто было лень вникать в то, что я написал и он просто решил сделать по-быстрому, так как уже где-то реализовывал. Буду рад если я не прав. Всё сводится к тому что своими силами мы разберёмся быстрее. Возможно, в этом и был ваш хитроумный план, поугнетать человека до тех пор, пока он не догадается до нужного решения. Если так, то в аду для вас отдельный котёл, помощнички ![]() Как сделаю финальный результат я сброшу сюда, просто чтобы утереть вам нос. |
||
|
Последний раз редактировалось lmiol, 18-02-2022 в 13:41. Отправлено: 07:56, 18-02-2022 | #745 |
|
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.Bevel1.Visible := false;
WizardForm.MainPanel.Visible := false;
WizardForm.InnerNotebook.Top := 50;
WizardForm.OuterNotebook.height := 400;
if CurPageID = wpInstalling then begin
Downloaded := idpFilesDownloaded();
if not(Downloaded) then begin
ExitProcess(553);
end;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if Cancel = True then begin
ExitProcess(554);
end;
end;
жирным выделил текст, чтобы показать эти 2 кейса |
|
Отправлено: 08:28, 18-02-2022 | #746 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата lmiol:
Скрытый текст
var
DownloadFailed: Boolean;
function idpBackButtonClick(Page: TWizardPage): Boolean;
begin
if not IDPOptions.NoRetryButton then // Retry button clicked
begin
DownloadFailed := False;
idpStartDownload;
Result := False;
end
else
Result := True;
end;
function idpNextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
procedure idpCancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
Cancel := not DownloadFailed or ExitSetupMsgBox;
if Cancel then
begin
IDPForm.Status.Caption := ExpandConstant('{cm:IDP_CancellingDownload}');
WizardForm.Repaint;
idpStopDownload;
Confirm := False;
end;
end;
procedure idpReportErrorHelper(Sender: TObject);
begin
DownloadFailed := True;
idpReportError; //calling idpReportError in main thread for compatibility with VCL Styles for IS
end;
Будет выход без подтверждения с прекращением загрузки, если пользователь Отмена нажмёт или окно попытается закрыть. Цитата lmiol:
Цитата lmiol:
|
|||
|
Отправлено: 21:38, 18-02-2022 | #747 |
|
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
Но я полностью согласен что во время модального окна с подтверждением должна быть пауза. У нативного загрузчика эта пауза есть. Но тут мы посчитали эту проблему низкоприоритетной. Если не успеет нажать значит сам виноват ![]() Ну т.е. кейс когда он жмёт закрыть и намеренно уходит очень низок. (но конечно будет). Ведь если кто-то не хочет чтобы ему что-то устанавливалось - он не будет ждать с моря погоды. Но повторюсь что такой кейс возможен (отвлекли например). Есть еще кейс если долго ждать загрузку и в конце нажать на Крестик (или эта отмена сделана в конце уже почти загуженного файла) то да, второй кейс когда всё упущено. UPDATE Кстати я потестировал еще раз у нас пауза делается сама на Download от IDP а на installation который у нас идёт секунды 2 уже крестика нет и прервать установку уже нельзя так что всё просто magnifique |
|
|
Последний раз редактировалось lmiol, 19-02-2022 в 11:16. Отправлено: 11:05, 19-02-2022 | #748 |
|
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Парни подскажите как сделать, что бы не было видно ошибок при переустановки программы.
Скрытый текст
|
|
Отправлено: 15:20, 09-03-2022 | #749 |
|
Ветеран Сообщения: 2186
|
Профиль | Отправить PM | Цитировать Цитата pollipen:
|
|
|
Отправлено: 18:25, 10-03-2022 | #750 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
| Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
| Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
| Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
| Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
|