Плагин 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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *