-----------------------------------------------------------------------------------------------------------------------------------------
function IsProcessRunning(FileName: String): Boolean;
var
objSWbemLocator, objSWbemServices: Variant;
begin
try
objSWbemLocator:= CreateOleObject('WbemScripting.SWbemLocator');
except
ShowExceptionMessage;
Exit;
end;
objSWbemServices:= objSWbemLocator.ConnectServer();
objSWbemServices.Security_.ImpersonationLevel:= 3;
Result:= (objSWbemServices.ExecQuery('SELECT * FROM Win32_Process WHERE Name="' + FileName + '"').Count > 0);
end;
-------------------------------------------------------------------------------------------------------------------------------------------
var
i: integer;
if IsProcessRunning('cls-lolz_x86.exe') then
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM cls-lolz_x86.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
if IsProcessRunning('cls-lolz_x64.exe') then
Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM cls-lolz_x64.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
Железное терпение однако..через пару часов
Наблюдается следующая проблема: распаковка зависает на 0%, через пару часов вылетает ошибка памяти в процессе "cls-lolz_x64.exe".
Ошибка у юзера, который репак ставит. Перед вылетом такая штука вылезает - https://prnt.sc/imsu5nхоть бы заскринел чтоль ошибку какая вылетает с подробностями. а тож получается инфы по сути 0.
да, ну. у меня 12 и работает.что у него 24 гб озу
NFS Payback, No Mans Sky от Механиков. Думаю, если он скачает другие репаки с лолзом, то и другие не будут ставиться.Wcar, А что за репак то?
Не спорю, но это какая-то специфическая ошибка, только у него наблюдается.да, ну. у меня 12 и работает.
я как-то прочел на тапках под репаком фитгерл crysis 3, про чувака у которого не работала игра, где требовалось нажать enter, и знаешь что? он потом пишет, что решил проблему, т.к. у него не было на клавиатуре этой кнопки, и подключил другую. так что в большинстве случаев проблемы со стороны юзера.
Если не используется mtt1, то контролировать кол-во потоков/памяти на анпак невозможно.Мне кажется, что дело в том, что у него 24 гб озу, а использование памяти лолзом в установщике задано в процентах.
-mtt[0..1] - при многопоточной обработке указывает используемый режим работы. При 0 размер словаря должен быть как минимум в 2 раза больше размера блока. В этом режиме данные для каждого потока будут загружаться чередуясь размером в блок. В этом режиме в большинстве случаев можно добиться лучшего сжатия, чем во втором, однако для распаковки потребуется такое число потоков, как и при сжатии. При 1 каждый блок сжимается отдельно, без зависимостей от соседних данных, соответственно сжатие тут получается обычно хуже, чем в первом режиме, но количество потоков на распаковку можно указывать любое. Именно для этого режима применяются опции из cls.ini MaxThreadsUsage и MaxMemoryUsage. По умолчанию: -mtt0;
да просто не надо использовать многопоточно его, есть же 4x4.Думаю, если он скачает другие репаки с лолзом, то и другие не будут ставиться.
Сжимаю с -mtt1, так что должно контролироваться все.Если не используется mtt1, то контролировать кол-во потоков/памяти на анпак невозможно.
у freearc проблема с использованием внешних архиваторов в stdin-to-stdout mode. какая-то там ошибка но я не знаю в чём она. так что извините - пока гарантий работы в этом реджиме нет
Кроме того, <stdio> во время упаковки будет еще одним преимуществом.