Diawer
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Setup] AppName=My Program AppVerName=My Program DefaultDirName={pf}\My Program DefaultGroupName=My Program OutputBaseFilename=My Program UninstallDisplayName=My Program [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Files] Source: ISTask.dll; DestDir: {app} Source: ISTask.dll; DestDir: {tmp}; Flags: dontcopy [_Code] function KillTask(ExeFileName: string): Integer; external 'KillTask@files:ISTask.dll stdcall delayload setuponly'; function RunTask(FileName: string; bFullpath: Boolean): Boolean; external 'RunTask@files:ISTask.dll stdcall delayload setuponly'; function KillTaskA(ExeFileName: string): Integer; external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly'; function RunTaskA(FileName: string; bFullpath: Boolean): Boolean; external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly'; function InitializeSetup(): Boolean; begin If RunTask('My Program.exe', false) then begin if MsgBox('Программа установки обнаружила, что программа PowerOff запущена в данный момент.'#13#13'Закрыть программу и продолжить удаление?', mbInformation, mb_YesNo) = idYes then begin KillTask('My Program.exe'); Result := True; end else Exit; end; Result := True; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if CurUninstallStep = usUninstall then begin UnloadDLL(ExpandConstant('{app}\ISTask.dll')); end; end; function InitializeUninstall(): Boolean; begin If RunTaskA('My Program.exe', false) then begin if MsgBox('Программа удаления обнаружила, что программа PowerOff запущена в данный момент.'#13#13'Закрыть программу и продолжить удаление?', mbInformation, mb_YesNo) = idYes then begin KillTaskA('My Program.exe'); Result := True; end else Exit; end; Result := True; end; |