Скрипты Inno Setup. Помощь и советы [часть 8]
-
AlekseyPopovv
-
Dodakaedr
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
sergey3695, спасибо за ответ!
DelTree(ExpandConstant('{tmp}'),true,true,true); пробовал вставлять, почему-то удаляется только часть файлов из папки TEMP, а вот библиотеки (dll) и сама папка is-xxxx остаются.
Из второго примера, я так понял, вы предложили кнопки поменять местами. NextButtonClick отрабатывает корректный выход, а в CancelButtonClickFinishedPage уже можно запускать программу (через ShellExec). После компиляции в FinishPage только одна кнопка Finish, а кнопка 'RUN' не отображается, хотя должно быть WizardForm.CancelButton.Caption := 'Run';
DelTree(ExpandConstant('{tmp}'),true,true,true); пробовал вставлять, почему-то удаляется только часть файлов из папки TEMP, а вот библиотеки (dll) и сама папка is-xxxx остаются.
Из второго примера, я так понял, вы предложили кнопки поменять местами. NextButtonClick отрабатывает корректный выход, а в CancelButtonClickFinishedPage уже можно запускать программу (через ShellExec). После компиляции в FinishPage только одна кнопка Finish, а кнопка 'RUN' не отображается, хотя должно быть WizardForm.CancelButton.Caption := 'Run';
-
AlekseyPopovv
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Dodakaedr, Может не правильно выразился, мне надо поменять цвет окна во всех MsgBox...
-
Dodakaedr
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
doctor_allcome, а когда вставляли [_code] стерли?
Цитата dapa:
окна StartupPrompt
а что это за окно?
Цитата dapa:
окна StartupPrompt
Скрипты Inno Setup. Помощь и советы [часть 8]
а что это за окно?
-
AlekseyPopovv
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Dodakaedr, А как в стандартных MsgBox поменять цвет?
-
solopavel
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата sergey3695:
а что это за окно?
Не корректно я наверное спросил... это то, что появляется перед запуском инсталла, когда в [Setup] DisableStartupPrompt=no
а что это за окно?
Скрипты Inno Setup. Помощь и советы [часть 8]
Не корректно я наверное спросил... это то, что появляется перед запуском инсталла, когда в [Setup] DisableStartupPrompt=no
-
El Sanchez
-
ZVSRus
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата solopavel:
При установке, нужно удалить из "программы" две папки с файлами полностью "aircraft_1" и "aircraft1_2"
Как-то так.
Скрытый текст
[spoiler]Код: [/spoiler]
При установке, нужно удалить из "программы" две папки с файлами полностью "aircraft_1" и "aircraft1_2"
Как-то так.
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
[Files]
Source: "{app}\traffic_3.bgl"; DestDir: "{app}";
Source: "{app}\aircraft_3\*"; DestDir: "{app}\aircraft_3";
[InstallDelete]
Type: files; Name: "{app}\traffic_1.bgl";
Type: files; Name: "{app}\traffic_2.bgl";
Type: filesandordirs; Name: "{app}\aircraft_1l";
Type: filesandordirs; Name: "{app}\aircraft_2l";
-
Dodakaedr
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
Цитата sergey3695:
dapa, нет нельзя. это стандартные сообщения.
Понятно, благодарю за ответ.
dapa, нет нельзя. это стандартные сообщения.
Скрипты Inno Setup. Помощь и советы [часть 8]
Понятно, благодарю за ответ.
-
El Sanchez
Re: Скрипты Inno Setup. Помощь и советы [часть 8]
doctor_allcome,
Скрытый текст
[spoiler][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.
Скрытый текст
[spoiler][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.
Код: Выделить всё
/////===== Начало - ExecAndWait =====\\\\\
var
lastproc: cardinal;
const
NORMAL_PRIORITY_CLASS = $00000020;
REALTIME_PRIORITY_CLASS = $00000100;
type
_TStartupInfo = record
cb: DWORD;
lpReserved, lpDesktop: Longint;
lpTitle: PAnsiChar;
dwX, dwY, dwXSize, dwYSize, dwXCountChars, dwYCountChars, dwFillAttribute, dwFlags: DWORD;
wShowWindow, cbReserved2: Word;
lpReserved2: Byte;
hStdInput, hStdOutput, hStdError: Longint;
end;
_TProcessInformation = record
hProcess, hThread: Longint;
dwProcessId, dwThreadId: DWORD;
end;
_TMsg = record
hWnd: HWND;
msg, wParam: Word;
lParam: LongWord;
Time: TFileTime;
pt: TPoint;
end;
function OpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; external 'OpenProcess@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): BOOL; external 'CloseHandle@kernel32.dll stdcall';
procedure GetStartupInfo(var lpStartupInfo: _TStartupInfo); external 'GetStartupInfoA@kernel32.dll stdcall';
function CreateProcess(lpApplicationName: PAnsiChar; lpCommandLine: PAnsiChar; lpProcessAttributes, lpThreadAttributes: DWORD; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: PAnsiChar; lpCurrentDirectory: PAnsiChar; const lpStartupInfo: _TStartupInfo; var lpProcessInformation: _TProcessInformation): BOOL; external 'CreateProcessA@kernel32.dll stdcall';
function WaitForSingleObject(hHandle: Longint; dwMilliseconds: DWORD): DWORD; external 'WaitForSingleObject@kernel32.dll stdcall';
function TerminateProcess(hProcess: Longint; uExitCode: UINT): BOOL; external 'TerminateProcess@kernel32.dll stdcall';
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 Application_ProcessMessages;
var
Msg: _TMsg;
begin
while PeekMessage(Msg, 0, 0, 0, 1) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
function ExecAndWait(filename, params: pansichar; showcmd: integer; Wait: boolean; Priority: Smallint): Boolean;
var
SI : _TStartupInfo;
PI : _TProcessInformation;
CMD: string;
prt: DWORD;
begin
Result:=false;
CMD:='"' + filename + '" ' + params;
GetStartupInfo(SI);
SI.wShowWindow := showcmd;
SI.dwFlags := 1;
if Priority = 0 then prt:= NORMAL_PRIORITY_CLASS else
prt:= REALTIME_PRIORITY_CLASS;
Result:=CreateProcess('', PansiChar(CMD), 0, 0, false, prt,'', pansichar(ExtractFilePath(filename)), SI, PI);
lastproc:=PI.dwProcessId;
if wait then
while WaitforSingleObject(PI.hProcess, 50) = $00000102 do
Application_ProcessMessages;
CloseHandle(PI.hProcess);
end;
/////===== Конец - ExecAndWait =====\\\\\
var
OldEvent_NextButtonClick: TNotifyEvent;
procedure NextButtonClick2(Sender: TObject);
begin
ExecAndWait(ExpandConstant('{sys}\calc.exe'), '', SW_SHOW, false, 0);
OldEvent_NextButtonClick(Sender);
end;
procedure CancelButtonClickFinishedPage(Sender: TObject);
begin
if ExitSetupMsgBox then
OldEvent_NextButtonClick(Sender);
end;
procedure InitializeWizard;
begin
OldEvent_NextButtonClick := WizardForm.NextButton.OnClick;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.CancelButton.Caption := SetupMessage(msgButtonFinish);
WizardForm.CancelButton.Visible := True;
WizardForm.CancelButton.OnClick := @CancelButtonClickFinishedPage;
//
WizardForm.NextButton.Caption := 'Run';
WizardForm.NextButton.OnClick := @NextButtonClick2;
end;
end;[/spoiler]