View Single Post
Old 20th September 2010, 21:19   #5
Afrow UK
Afrow UK's Avatar
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
Originally Posted by nsnb View Post
...and supports finding a 64-bit process if NSIS itself was built on an x64 system.
The limitation is because NSIS is 32-bit; it is nothing to do with the platform that NSIS is built on. If NSIS was rebuilt as an x64 binary then we wouldn't have the problem. I think I posted a link on this issue in the LockedList plug-in forum topic while I was trying to find a solution. x64 NSIS is not going to be here any time soon - it'd be a lot of work.

So really there are 2 solutions that I can think of at this time. Use WMI (someone posted a header file in a recent post) or write a 64-bit executable which does what the plug-ins do (you could make it a console application and read its output using nsExec::ExecToStack).

Post 7000 FTW.

Edit: In regards to ProcFunc, it uses CreateToolhelp32Snapshot among others (including the FindProcDLL plug-in). From MSDN CreateToolhelp32Snapshot:
If the specified process is a 64-bit process and the caller is a 32-bit process, this function fails and the last error code is ERROR_PARTIAL_COPY (299).
Afrow UK is offline   Reply With Quote