Имя пользователя:
Пароль:
 

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

Аватара для Rikill

Старожил


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

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


Devils Night,
Код: Выделить весь код
function KillTasks(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';

function RunTasks(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';

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';

//**************************************************//
function InitializeSetup(): Boolean;
begin
  If RunTasks('Winamp.exe', false) then
    begin
      if MsgBox('Программа Winamp используется. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
        begin
          KillTasks('Winamp.exe');
          Result:= True;
        end else
          Exit;
    end;
Result:=True;
end;


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;

-------
"Око за око приведёт к слепоте мира"- Ганди

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:57, 20-11-2011 | #178