Skip to content
⌘ NSIS Forum Archive

LockedList plug-in

320 posts

LoRd_MuldeR#
Originally Posted by Afrow UK View Post
v2.3 uploaded.

Stu
Thanks. Works for me under Win2k now 🙂
angelblaze#
Auto Terminate Patch

Below is a tiny patch to add auto close/kill without user having to click next/install.

Add new parameter /autoterm to LockedList:😁ialog

Only tested for the following invocation
LockedList:😁ialog /autoterm /autonext /autoclosesilent "" ""

probably not best way to do it but it seems to work :-)


Index: LockedList.cpp
===================================================================
--- LockedList.cpp (revision 2134)
+++ LockedList.cpp (working copy)
@@ -1598,6 +1598,11 @@
{
g_fAutoNext = TRUE;
}
+ // Automatically start to Auto close/kill
+ else if (lstrcmpi(pszParam, TEXT("/autoterm")) == 0)
+ {
+ g_fAutoClosing = TRUE;
+ }
// Add new ignore button.
else if (lstrcmpi(pszParam, TEXT("/ignorebtn")) == 0)
{
angelblaze#
Agreed that closing programs without user interaction isn't a generally good idea. Our reasons are:
a) the updater needs to be totally passive with no user interaction required
b) our user base has proven itself incapable of closing programs on their own
c) other nsis plugins that I tried didn't provide nice feedback so we heard some complains about the updater being unresponsive if it took a long time to close a program.

Thank you for the excellent plugin! 😎
Afrow UK#
Small bug fix release v2.4.
* Improved support for Windows x64 - now retrieves 64-bit processes but still cannot enumerate 64-bit modules (this is not possible from a 32-bit process).
* Fixed infinite loop which sometimes occurred on Cancel button click.
http://nsis.sourceforge.net/File:LockedList.zip

Stu
LoRd_MuldeR#
Hello.

I experience crash with v2.4 on Windows XP (32-Bit), but not on Windows 7 (x64):


The code used is:


BTW: I am using the Unicode version of your plugin-in, if that matters.

(Reverted back to v2.3 and problem is gone)
LoRd_MuldeR#
Originally Posted by Afrow UK View Post
v2.5 - 11th July 2011
* Fixed crash on Windows XP 32-bit and below.
Stu
Amarynth#
Hi 🙂

I wanted to use this plugin to check if someone else in LAN is locking files. But it seems as if the plugin is not able to check this.

Am I doing something wrong or isn't it possible to check if a file in the network is locked my someone else?


Ama
LoRd_MuldeR#edited
Originally Posted by Amarynth View Post
Hi 🙂

I wanted to use this plugin to check if someone else in LAN is locking files. But it seems as if the plugin is not able to check this.

Am I doing something wrong or isn't it possible to check if a file in the network is locked my someone else?


Ama
i don't think this will work.

LockedList is process-based, i.e. it checks for "local" processes that hold a lock on critical files and thus prevent the installer form continuing. While it might be possible to detect whether a local file is locked by "remote" access (actually the file would then be locked by the "file sharing" service running on the local machine), it won't be possible to tell which process on the "remote" computer holds the lock. There normally is, for good reason, no way to enumerate/analyze the processes on a "remote" machine. You'd have to run some kind of "monitoring service" on the remote machine to make information about running processes available over the network. Needles to say that the communication with the monitoring service should be encrypted and password protected. WMI can probably do that though...

Without additional "monitoring" software running on the "remote" machine, the machine_id + user_id holding the lock on the file is probably all you can get. That's basically what "Shared Folders" -> "Session" shows in the "Computer Manager".
LSI_Riedel#
Hello,



We're using LockedList to search for a running Process (see above part) in the .onInit function.
On 2.4 and 2.5 the installer simply exit (crashs?) between WelcomeScreen and License Page. On 2.3 it works. The problem occurs only on WinXP 64.

We have just downgrade to 2.3 and hope we got no other problems.
Is there a way to fix it? Did you need some more information?


Thanks
Mike
Afrow UK#
To fix it one would need to rebuild the plug-in and hook it up to the debugger in Visual Studio on XP 64. Or perhaps you can compare the source code of the different versions to identify what the problem could be.

Stu
Afrow UK#
New version:
v2.6 - 9th January 2012
* Added missing calls to EnableDebugPriv() in FindProcess and EnumProcesses.
Stu
rumovoice#
When LockedList is used with basic UI it correctly shows locked file list but when I click next it disables all buttons and clears user interface. So I end up with empty window and can't even close it. How to fix it? I don't want to switch to modern UI because I like minimalistic style and I'm writing an updater with only single page (setup progress).

Here's repro code:
RequestExecutionLevel user
SetCompress off
XPStyle on
OutFile "test.exe"
InstallDir "$EXEDIR\inst"
Icon "${NSISDIR}\contrib\graphics\icons\orange-install.ico"

Section "Main Section" SecMain
SetOutPath "$INSTDIR"
LockedList::AddFolder $INSTDIR
LockedList:😁ialog
Pop $R0
;MessageBox MB_ICONINFORMATION|MB_OK "$R0"
File "foo.dll"
SectionEnd
Afrow UK#
You're not using the plug-in correctly. Whether you use MUI or not you can't show a dialog from a Section.

Stu
rumovoice#
Can you please show me simple example how to use it correctly? (I'm new to NSIS and I only found examples for MUI)
SwiftHalf#
64 bit issue

I just wanted to report a bug on 64 bit machines.

The plug-in calls Wow64DisableWow64FsRedirection but doesn't switch filesystem redirection on afterwards. I found this problem because I was trying to install some dlls to System32, and they ended up in the wrong place!

I worked around the problem by adding the following to my nsi script after the lockedlist plugin had done its stuff:

StrCpy $1 0
System::Call kernel32::Wow64RevertWow64FsRedirection(i.r0) i.r1
stopasking#
Hi,

the '/autonext' option is not working with the UNICODE plugin (on my Win7 x64 machine - if it is relevant).

When I use 'LockedList::Show' and do a Pop $0 there are different strings in the ANSI and UNICODE plugin when I press the back button. $0 == 'back' (ANSI) and $0 == 'b' (UNICODE). This makes it hard to write compatible NSIS code (or I am using it the wrong way 😉 ).
stopasking#
Hi, thanks for your quick reply.

No, at the moment I am using the ANSI plugin with NSIS. But, because of some problems with my script I played a lot around with your plugin and also tested the UNICODE version.
Therefore I discovered these problems/bugs/inconsistencies.

Maybe its no bug then sorry for wasting your time...

Oh, but one other thing: Using the ANSI Plugin / 2.46 NSIS / Win7 X64. Installed on my test system was the AMD catalyst conrol center (sorry, at the moment I don't know which version - but I can receive it when you want to know).
The problem: while searching for processes it seems your plugin "touches" this running program (the control center) and causing it to crash.
Maybe the way you gain access to the running programs is the problem? The AMD tool was not in my lockedlist, btw. and it was the only program where I discovered such a behaviour but reproducable 🙂
Afrow UK#
You didn't answer my question. If you want to use the Unicode version of the plug-in you have to use the Unicode version of NSIS as well. Otherwise you experience the kind of 'bugs' you are getting.

Edit: But if you are using the Unicode NSIS build then I will check it out.

Stu
stopasking#
You are right - my fault. I did not use the NSIS UNICODE version. I will check it out and if this problem still exists I will come back to you.

Sorry for this and thanks for your help!

But the problem with the crashed catalyst tool while scanning for processes still exists and I used the ANSI plugin...

Anyway, thanks again!!
LoRd_MuldeR#
Hi.

Is sometimes get the problem that the LockedList plug-in will get stuck in the "Cancelling search, please wait..." state.



It will go on, as soon as I press some key or move the mouse cursor...

My code looks like this:


Thanks in advance for any advice 🙂
C.R.a.S.H#
Which version of NSIS are you using?

Which version of the LockedList plugin are you using?

Does the problem occur in one of the example scripts supplied with the LockedList plugin?
I'm using last version of NSIS Unicode (nsis-2.46.4-Unicode)
And last (2.6) or previous (2.5) versions of the LockedList plugin

This problem can reproduce with all LockedList example scripts (ex: LockedListShell32.nsi)
Afrow UK#
New version uploaded:
2.6.0.1 - 23rd March 2012
* Fixed clipboard list copy for the Unicode build.
* Fixed crashes and infinite looping after repeatedly going back to the LockedList page.
Let me know if you find any other issues or issues still remain.

Stu
LoRd_MuldeR#
Thank you for the update!

I will check if it still hangs at "Cancelling search, please wait..." on my Win2k machine as soon as I get home...