Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 989
Благодарности: 38

Профиль | Отправить PM | Цитировать


Serega_, большое Вам спасибо!
Только я очень, очень начинающий и поэтому мне не очень ясно.
Допустим мне нужно при деинсталяции завершить 2 процесса:
1.Program1.exe
2.Program2.exe
скрипт будет выглядеть так:

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Files]
Source: ISTask.dll; DestDir: {app}; Flags: ignoreversion
Source: compiler:Examples\Program1.exe; DestDir: {app}; Flags: ignoreversion
Source: compiler:Examples\Program2.exe; DestDir: {app}; Flags: ignoreversion

[Run]
Filename: {app}\Program1.exe; Description: Запустить программу Program1?; Flags: postinstall nowait skipifsilent

; ниже поправьте название секции(ЭТО Я НЕ ПОНЯЛ в какую секцию вставлять и нужно ли указывать - [code])
[code]
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function KillTask(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
if RunTask('Program1.exe', 'Program2.exe', false) then begin
KillTask('Program1.exe', 'Program2.exe');
UnloadDll(ExpandConstant('{app}\ISTask.dll'));
end;
end;
[code]

Отправлено: 15:04, 12-04-2009 | #606