Processes plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
 
(18 intermediate revisions by 12 users not shown)
Line 4: Line 4:
Plugin + C++ Source Code:
Plugin + C++ Source Code:


[[Image:Zip.gif]] [http://download.inscape3d.com/share/nsis/Processes-Unicode.7z Processes-Unicode] (Modified by Mathieu Ruffat)
  - The code has been ported to compile using Unicode, so it can be used in Unicode installers
  - Tested on NSIS 3.02.1. Quick and dirty porting but it works.
  - Based on Processes-x64fix.zip (Processes-x64fix_v2 link is dead)
  - Should also compile/work in ANSI but not tested
[[Image:Zip.gif]] [http://dl.dropbox.com/u/18386244/Processes-x64fix.zip Processes-x64fix_v2] (Modified by Stefan Gatu)
  - Fixed killing processes starting with same name
  - Now, the process name can end or not with .exe
<attach>Processes-x64fix.zip</attach> - fixed for Vista x64<br>
<attach>Processes.zip</attach><br>
<attach>Processes.zip</attach><br>
[[Image:Zip.gif]] <strike>[http://devel.icode.ro/files/processes.zip Processes.zip]</strike> (39 KB) (Mirror #1)
[[Image:Zip.gif]] <strike>[http://devel.icode.ro/files/processes.zip Processes.zip]</strike> (39 KB) (Mirror #1)


== Description ==
== Description ==
NOTE: This plugin seems to no longer work after Windows update KB4579311 changed psapi.dll.
; Version
; Version
: 1.0.1.0
: 1.0.1.0
Line 24: Line 37:
; Author:
; Author:
: Andrei Ciubotaru [Hardwired]
: Andrei Ciubotaru [Hardwired]
: President of Inocentric SRL ([http://www.inocentric.com/ http://www.inocentric.com/])
: President of Inocentric SRL ([hxxp://www.inocentric.com/ hxxp://www.inocentric.com/])
: [mailto:hardwired@inocentric.com hardwired@inocentric.com]
: [hardwired AT inocentric.com hardwired AT inocentric.com]
: Project Manager ICode&Ideas SRL ([http://www.icode.ro/ http://www.icode.ro/])
: Project Manager ICode&Ideas SRL ([hxxp://www.icode.ro/ hxxp://www.icode.ro/])
: [mailto:hardwired@icode.ro hardwired@icode.ro]
: [hardwired AT icode.ro hardwired AT icode.ro]


== Introduction ==
== Introduction ==
The Need For Plug-in - I need it for the one of my installers.
The Need For Plug-in - I needed it for one of my installers.
Briefly: Use it when you need to find\kill a process when installing\uninstalling some application. Also, use it when you need to test the presence of a device driver.
Briefly: Use it when you need to find/kill a process when installing/uninstalling some application. Also, use it when you need to test the presence of a device driver.


== Support ==
== Support ==
Line 67: Line 80:


== Usage ==
== Usage ==
First of all, does not matter where you use it. Of course, the routines must be called inside of a Section/Function scope.
First of all, it does not matter where you use it. Of course, the routines must be called inside of a Section/Function scope.
<highlight-nsis>
<highlight-nsis>
Processes::FindProcess "process_name" ;without ".exe"
Processes::FindProcess "process_name" ;without ".exe"
Line 75: Line 88:
make_my_day:
make_my_day:
...
...
;;
 
noooooo:
noooooo:
...
...
Line 101: Line 115:
...
...
</highlight-nsis>
</highlight-nsis>
 
== Thanks ==
== Thanks ==
Sunil Kamath for inspiring me. I wanted to use its FindProcDLL but my requirements made it imposible.
Sunil Kamath for inspiring me. I wanted to use his [[FindProcDLL plug-in]] but my requirements made it imposible.


Nullsoft for creating this very powerful installer. One big, free and full-featured (hmmm... and guiless for the moment) mean install machine!:)
Nullsoft for creating this very powerful installer. One big, free and full-featured (hmmm... and guiless for the moment) mean install machine!:)


ME for being such a great coder... ... HAHAHAHAHAHAHA!
== One more thing... ==
== One more thing... ==
If you use the plugin or it's source-code, I would be appreciated if my name is mentioned.
If you use the plugin or its source-code, I would be appreciated if my name is mentioned.


[[Category:Plugins]]
[[Category:Plugins]]

Latest revision as of 14:23, 14 July 2021

Author: hardwired (talk, contrib)


Links

Plugin + C++ Source Code:

Zip.gif Processes-Unicode (Modified by Mathieu Ruffat)

  - The code has been ported to compile using Unicode, so it can be used in Unicode installers 
  - Tested on NSIS 3.02.1. Quick and dirty porting but it works.
  - Based on Processes-x64fix.zip (Processes-x64fix_v2 link is dead)
  - Should also compile/work in ANSI but not tested

Zip.gif Processes-x64fix_v2 (Modified by Stefan Gatu)

  - Fixed killing processes starting with same name
  - Now, the process name can end or not with .exe

Processes-x64fix.zip (45 KB) - fixed for Vista x64
Processes.zip (39 KB)
Zip.gif Processes.zip (39 KB) (Mirror #1)

Description

NOTE: This plugin seems to no longer work after Windows update KB4579311 changed psapi.dll.

Version
1.0.1.0
Release
24.february.2005
Description
Nullsoft Installer (NSIS) plug-in for managing?! processes.
Copyright
© 2004-2005 Hardwired. No rights reserved.
There is no restriction for using this software...
...no guarantee either!
Author
Andrei Ciubotaru [Hardwired]
President of Inocentric SRL ([hxxp://www.inocentric.com/ hxxp://www.inocentric.com/])
[hardwired AT inocentric.com hardwired AT inocentric.com]
Project Manager ICode&Ideas SRL ([hxxp://www.icode.ro/ hxxp://www.icode.ro/])
[hardwired AT icode.ro hardwired AT icode.ro]

Introduction

The Need For Plug-in - I needed it for one of my installers.

Briefly: Use it when you need to find/kill a process when installing/uninstalling some application. Also, use it when you need to test the presence of a device driver.

Support

Supported platforms are: WinNT,Win2K,WinXP and Win2003 Server.

DLL Functions

Processes::FindProcess "process_name"

Searches the currently running processes for the given process name.

return on $R0:

1 - the process was found
0 - the process was not found
Processes::KillProcess "process_name"

Searches the currently running processes for the given process name. If the process is found then the it gets killed.

return on $R0:

1 - the process was found and killed
0 - the process was not found or the process cannot be killed (insufficient rights)
Processes::FindDevice "device_base_name"

Searches the installed devices drivers for the given device base name(important: I said BASE NAME not FILENAME).

return on $R0:

1 - the device driver was found
0 - the device driver was not found

Usage

First of all, it does not matter where you use it. Of course, the routines must be called inside of a Section/Function scope.

Processes::FindProcess "process_name" ;without ".exe"
 
StrCmp $R0 "1" make_my_day noooooo
 
make_my_day:
...
;; 
 
noooooo:
...
 
 
Processes::KillProcess "process_name" ;without ".exe"
 
StrCmp $R0 "1" dead_meat why_wont_you_die
 
dead_meat:
...
 
why_wont_you_die:
...
 
 
Processes::FindDevice "device_base_name"
 
StrCmp $R0 "1" blabla more_blabla
 
blabla:
...
 
more_blabla:
...

Thanks

Sunil Kamath for inspiring me. I wanted to use his FindProcDLL plug-in but my requirements made it imposible.

Nullsoft for creating this very powerful installer. One big, free and full-featured (hmmm... and guiless for the moment) mean install machine!:)

One more thing...

If you use the plugin or its source-code, I would be appreciated if my name is mentioned.