13c8f89d7a
Plugin: nsProcess v1.6.0 Architectures: x86-ansi, x86-unicode, amd64-unicode License: zlib
68 lines
2.4 KiB
Plaintext
68 lines
2.4 KiB
Plaintext
*****************************************************************
|
|
*** nsProcess NSIS plugin v1.6 ***
|
|
*****************************************************************
|
|
|
|
2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
|
|
|
|
Source function FIND_PROC_BY_NAME based
|
|
upon the Ravi Kochhar (kochhar@physiology.wisc.edu) code
|
|
Thanks iceman_k (FindProcDLL plugin) and
|
|
DITMan (KillProcDLL plugin) for direct me
|
|
NSIS UNICODE compatible version (1.6) by brainsucker
|
|
(sorry, installer missing, i'm too lazy :)
|
|
|
|
Features:
|
|
- Find a process by name
|
|
- Kill all processes with specified name (not only one)
|
|
- Close all processes with specified name (first tries to close all process windows,
|
|
waits for 3 seconds for process to exit, terminates if still alive)
|
|
- The process name is case-insensitive
|
|
- Win95/98/ME/NT/2000/XP/Win7 support
|
|
- Small plugin size (4 Kb)
|
|
- NSIS UNICODE support (just rename nsProcessW.dll into nsProcess.dll)
|
|
|
|
**** Find process ****
|
|
${nsProcess::FindProcess} "[file.exe]" $var
|
|
|
|
"[file.exe]" - Process name (e.g. "notepad.exe")
|
|
|
|
$var 0 Success
|
|
603 Process was not currently running
|
|
604 Unable to identify system type
|
|
605 Unsupported OS
|
|
606 Unable to load NTDLL.DLL
|
|
607 Unable to get procedure address from NTDLL.DLL
|
|
608 NtQuerySystemInformation failed
|
|
609 Unable to load KERNEL32.DLL
|
|
610 Unable to get procedure address from KERNEL32.DLL
|
|
611 CreateToolhelp32Snapshot failed
|
|
|
|
|
|
**** Kill/Close process ****
|
|
${nsProcess::KillProcess} "[file.exe]" $var
|
|
${nsProcess::CloseProcess} "[file.exe]" $var
|
|
|
|
"[file.exe]" - Process name (e.g. "notepad.exe")
|
|
|
|
$var 0 Success
|
|
601 No permission to terminate process
|
|
602 Not all processes terminated successfully
|
|
603 Process was not currently running
|
|
604 Unable to identify system type
|
|
605 Unsupported OS
|
|
606 Unable to load NTDLL.DLL
|
|
607 Unable to get procedure address from NTDLL.DLL
|
|
608 NtQuerySystemInformation failed
|
|
609 Unable to load KERNEL32.DLL
|
|
610 Unable to get procedure address from KERNEL32.DLL
|
|
611 CreateToolhelp32Snapshot failed
|
|
|
|
**** Comment from brainsucker ****
|
|
I'm actually not using macros in my code, plugin calls are easy:
|
|
|
|
nsProcess:_CloseProcess "notepad.exe"
|
|
Pop $R0
|
|
|
|
**** Unload plugin ****
|
|
${nsProcess::Unload}
|