vint56
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Files] Source: ISTask.dll; DestDir: {app}; Flags: ignoreversion [Code] // функции используемые при деинсталляции // RunTask@{app}\ISTask.dll - название функции (в данном случае, если программа работает) // и путь dll'ки где она расположена... 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('winamp.exe', False) then begin // прячем форму UninstallProgressForm.Visible:= False; if MsgBox('Программа winamp.exe используется. Закрыть и продолжить удаление?', mbConfirmation, MB_YESNO) = IDYES then begin KillTask('winamp.exe'); UnloadDll(ExpandConstant('{app}\ISTask.dll')); // показываем форму UninstallProgressForm.Visible:= True; end else begin MsgBox('Завершите работу winamp.exe, затем снова запустите программу удаления.', mbInformation, MB_OK); UnloadDll(ExpandConstant('{app}\ISTask.dll')); Abort; end; end; end; | Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 10:38 28-08-2010 | Исправлено: vint56, 10:40 28-08-2010 |
|