Плагин NsProcess
Версия 1.5:
- nsProcess.zip (25 KB)
Версия 1.6 (поддержка NSIS UNICODE от brainsucker, переименуйте библиотеку
nsProcessW.dll
):- nsProcess.zip (14 KB)
- Зеркало: nsProcess_1_6.7z
Обсуждение:
На форуме
Возможности:
- Поиск процесса по имени.
- Завершение всех процессов с указанным именем (все найденные экземпляры).
- Закрытие всех процессов с указанным именем. Сначала происходит попытка закрыть все окна процессов, ожидание 3 секунд для завершения процессов. Если процесс(ы) все еще активны, используйте функцию
_CloseProcess
.- Имя процесса нечувствительно к регистру
- Поддерживаемые ОС: Win95/98/ME/NT/2000/XP/Win7
- Поиск процессов других пользователей при запуске с правами администратора или при переключении на другого пользователя.
- Маленький размер плагина (4 Кб)
- Поддержка Unicode (просто переименуйте
nsProcessW.dll
в nsProcess.dll
)!include "LogicLib.nsh"
Section ""
StrCpy $1 "YOURAPP.exe"
nsProcess::_FindProcess "$1"
Pop $R0
${If} $R0 = 0
nsProcess::_KillProcess "$1"
Pop $R0
Sleep 500
${EndIf}
SectionEnd
Обычно
_FindProcess
возвращает:-
0
если процесс найден-
603
если процесс(ы) не найдены// Коды возврата:
// 0 = успех
// 601 = Нет разрешения на завершение процесса
// 602 = Не все процессы завершились успешно
// 603 = Процесс в данный момент не запущен
// 604 = Невозможно определить тип ОС
// 605 = ОС не поддерживается
// 606 = Невозможно загрузить NTDLL.DLL
// 607 = Не удалось получить адрес процедуры из NTDLL.DLL
// 608 = ошибка NtQuerySystemInformation
// 609 = Невозможно загрузить KERNEL32.DLL
// 610 = Не удалось получить адрес процедуры из KERNEL32.DLL
// 611 = Ошибка CreateToolhelp32Snapshot
Ravi Kochhar (исходная функция FIND_PROC_BY_NAME на основе его кода)
iceman_k (Find Process By Name) и DITMan (KillProcDLL Manual).
Перевел Leha Silent специально для tolik-punkoff.com
Источник
Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2023/04/02/pla