Archive: Process Plugins that work with Vista


Process Plugins that work with Vista
I am having a problem with the process addons I have attempted to use I am not sure if it is because of Vista or not but there is no logical reason that the code shouldn't work.

The ones i've tried so far are
Processes.dll
FindProcDLL.dll
KillProcDLL
nsProcess.dll

All I want is for NSIS to detect if blah.exe is running and if it is to tell the user to exit the program and retry or cancel the installation for a later time.

Every attempt I have made with the Forementioned Plugins has allowed me to continue installation without a warning despite the fact that the process i'm trying to detect is running.

I am running Windows Vista Ultimate 32bit, I can only assume it is a compatability issue with Vista because I have not been able to try on other versions of Windows.


What is the error code that you get when you call those plugins? Each of these should push something on the NSIS stack...
CF


I know this won't help much :), but I can confirm that what you are trying to do is possible with Windows Vista. We currently use the Processes plugin, and I haven't had any problems with it killing the requested process.


Maybe you're trying to kill a protected process? That should be impossible with any plug-in or code.


Perhaps its an Error on my part
Well I am not trying to kill a process just find out if its working perhaps i scripted this wrong i'll attach the way i've been using it with no luck.

Function .onInit
ReadRegStr $R1 HKLM "SOFTWARE\Program Manufacturer\Program To Search For\" "InstallPath"

StrCmp $R1 "" ProgNotFound ProgFound

ProgNotFound:
MessageBox MB_OK|MB_ICONEXCLAMATION "The Program this installer needs is not installed on this computer. You must install it to continue with this installation."
Quit

ProgFound:
loop:
Processes::FindProcess "Prog"
StrCmp $R0 1 0 done

MessageBox MB_OK|MB_ICONEXCLAMATION "The Program this installer needs is running on this computer. You must close it to continue with this installation."
Quit

done:
FunctionEnd

If this is not correct please let me know it was put together from example script i have found on the web.


I am having a similiar problem. I suspect that the FindProcDLL has problems working with Vista because my problem doesn't appear in XP. Did anybody resolve this problem?


Maybe the installer is elevated and FindProcDLL doesn't find processes created by the elevating user? Try RequestExecutionLevel user and see if it works in that case.


I have a problem with the Processes addon and Vista as well.

I have Vista x64.
Processes finds 32-bit processes OK, but not 64-bit.

Has anybody found a way to find both 32- and 64-bit processes?