Убрать ошибки

vadj

Новичок
Парни подскажите как сделать, что бы не было видно ошибок при переустановки программы.
 

Вложения

  • Снимок экрана (2).png
    Снимок экрана (2).png
    14.4 KB · Просмотры: 40
Может предварительно закрыть запущенную программу?
Запустить установщик от имени администратора?
 
Может предварительно закрыть запущенную программу?
Запустить установщик от имени администратора?
дело в том, что некоторые файлы работают в фоне и просто так не закроешь. Пробовал батником убить не помогает. Вот и решил может как то можно убрать проверку файлов.
 
По ключу реестра. Если такой то ключ присутствует выдается сообщение что эта программа уже установлена с выбором деинсталляции или удаления в ручную, если выбор удаление, то запускается деинсталлятор в 'тихом' режиме, затем продолжается установка.
 
А если так попробовать "убить" запущенный процесс?
code_language.pascal:
    [Files]
    Source: ISTask.dll; DestDir: "{app}"
    
    [Code]
    function KillTask(ExeFileName: string): Integer;
    external 'KillTask@files:ISTask.dll stdcall setuponly';
          
    function RunTask(FileName: string; bFullpath: Boolean): Boolean;
    external 'RunTask@files:ISTask.dll stdcall setuponly';
 

Вложения

  • Like
Реакции: vadj
А если так попробовать "убить" запущенный процесс?
code_language.pascal:
    [Files]
    Source: ISTask.dll; DestDir: "{app}"
   
    [Code]
    function KillTask(ExeFileName: string): Integer;
    external 'KillTask@files:ISTask.dll stdcall setuponly';
         
    function RunTask(FileName: string; bFullpath: Boolean): Boolean;
    external 'RunTask@files:ISTask.dll stdcall setuponly';
А причем процесс .exe? У тебя на снимке библиотека висит .dll. Есть конечно инструменты выгрузить библиотеку. Но у тебя могут другие оказаться вместо этой.
 
А причем процесс .exe? У тебя на снимке библиотека висит .dll
Ну и что? При установке сначала перезаписывается dll потом exe, соответственно ошибка вылазит на dll. Или данная программа состоит чисто из dll?
 
Ну и что? При установке сначала перезаписывается dll потом exe, соответственно ошибка вылазит на dll. Или данная программа состоит чисто из dll?
Скорей всего эта dll связана с проводником. И ее без перезапуска эксплорер не удалить/перезаписать. Или со службами запущенными. А удалить службы через инно можно, но сложно. Легче запустить деинсталлятор. Или использовать NSIS.
 
Последнее редактирование:
Можно попробовать procedure UnloadDLL(Filename: String), но это вряд ли поможет.
begin
// Call DllFunc
DllFunc;
// Unload the DLL
UnloadDLL(ExpandConstant('{app}\MyDll.dll'));

// Now we can delete the DLL
DeleteFile(ExpandConstant('{app}\MyDll.dll'));
end;
 
Последнее редактирование:
но это вряд ли поможет.
Всё же для начала я бы смотрел процессы, возможно какой нибудь висит фоном/в трее. Судя по скрину стоит это
Advanced SystemCare — это комплекс утилит для оптимизации ПК, обеспечивает автоматический сервис по удалению вредоносных программ, исправлению ошибок в реестре
 
Всё же для начала я бы смотрел процессы, возможно какой нибудь висит фоном/в трее. Судя по скрину стоит это
filectl.dll это файл библиотеки динамических ссылок, который является частью разработанный IObit, программного обеспечения. Пишут что он может быть прикреплен к исполняемому файлу. Да, можно сначала попробовать убить процесс в трее(т.е. exe файла), если это не поможет, то смотреть далее службы и т.д). Я бы все сделал через деинсталлятор. К тому же там точно помню что у этой программы есть свои службы, и ПКМ в меню то же прописан. Просто так все эти библиотеки точно не перезапишешь.
 
Последнее редактирование:
Кстати, Krinkels, что ты не добавишь в ресурсы>nsis программу sfx-tool-mulder. Очень интересная программа для nsis.
 
Кстати, Krinkels, что ты не добавишь в ресурсы>nsis программу sfx-tool-mulder. Очень интересная программа для nsis.
А кто мешает добавить ресурс самому?) Мы открыты для всех. Да, есть небольшие ограничения, но они сделаны для поддержки форума
 
Назад
Сверху