висящий процесс

ilyaign86

Новичок
Здравствуйте! Хочется спросить у местных специалистов, никак не могу выцепить проблему почему (периодически, не всегда) не выгружается процесс из памяти. Проверял на десятке, нормально, на одинадцатой винде иногда начинается такая проблема, версия Инно 6.7.0/6.7.1. Предыстория такова, что мне нравятся инсталляторы CODEX/RUNE, поэтому идея и часть скрипта взяты из их проектов и адаптированы под человеческий современный Инно. У них такой проблемы нет и у меня раньше не было до какого-то определенного момента. Причем сам EXE прекрасно закрывается, а висит процесс TMP из временной папки. Вроде как раньше нужно было выгружать длл-ки скинов, но в последней версии это уже не требуется, все реализуется уже штатными средствами Инно. Смотрел код, вроде ничего криминального не нашел, вот и надо спросить у опытных людей.

Это первый вопрос и второй сразу, нормально ли и правильно использовать для решения этой проблемы вариант с Taskkill? Написал код, возвращающий ID запущенного процесса и в DeinitializeSetup тасккилл убивает этот процесс по его ID. Вариант рабочий, но можно ли так делать?
 

Вложения

Это первый вопрос и второй сразу, нормально ли и правильно использовать для решения этой проблемы вариант с Taskkill? Написал код, возвращающий ID запущенного процесса и в DeinitializeSetup тасккилл убивает этот процесс по его ID. Вариант рабочий, но можно ли так делать?
Как хочешь так и делай
Попробуй вот это
code_language.pascal:
procedure DeinitializeSetup;
var
  ResultCode: Integer;
begin
  if bInitDone then ShowWindow(WizardForm.Handle, SW_HIDE);

  if TimerID <> 0 then
    KillTimer(WizardForm.Handle, TimerID);

  if oldWFproc <> 0 then
    SetWindowLong(WizardForm.Handle, GWL_WNDPROC, oldWFproc);

 //  Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /T /PID ' + IntToStr(PID), '', SW_HIDE, ewNoWait, ResultCode);
end;

P.S И кстати у меня все норм с этими инсталляторами, ни чего не висит (Windows 11-26200.7922) (Inno Setup 7.0.0-dev)
Единственная "проблема" это оставленная папка в {tmp} - is-xxxxxxxxx-uninstall.tmp
Она появляется если применить стиль - WizardStyle
 
Последнее редактирование:
Назад
Сверху