![]() |
New version.
Quote:
Stu |
Stu,
The newest plugin crashes for me LockedList Unicode: 2.6.1.3 NSIS Unicode 2.46.5 Windows 7 x64 (Language PL) Used syntax: PHP Code:
Edit: Last working build is: 2.6.1.0 [Build 2.6.1.1, 2.6.1.2 and 2.6.1.3 crashes] Edit2: ANSI build 2.6.1.3 works OK. However, if I use /autonext option and do: - Welcome Page -> LockedPage (not showed thanks to /autonext) -> Components Page <-- LockedPage -> I can not go to previous page, as LockedPage is autonext forward... I hope you understand. -Pawel |
What OS?
Edit: Regarding the autonext problem see a few posts back. Stu |
As I wrote in my first post, Windows 7 x64 with Polish language.
|
OK, thanks.
-Pawel |
New version.
Quote:
Stu |
Stu, I confirm it is fixed now. Thx.
-Pawel |
Great :)
Edit: Post 8000 FTW! Stu |
This is a great plugin, thanks!
Is there a way to use autonext and autoclosesilent? In other words I would like it to skip the page if the file is not locked, but if it is locked then offer an option to close it. |
Does it not work with both switches?
Stu |
It does, sorry I was using the wrong syntax when I tested. Thanks again for the plugin
|
Quote:
are you the developer of LameXP? |
Quote:
(You could have followed the link to my web-site in my profile) |
Quote:
i hardly click on profiles, links, etc .. i come here for info, help, etc .. i use your app all the time.. great stuff man. @ AfrowUK hey i have a question.. before finding your plugin.. i was using batch commands w/ handle.exe. ie. PHP Code:
and it worked at killing the processes required to delete the file. but it required the additional handle.exe, which installs additional registry keys, etc. i noticed your plugin is much faster/easier to use.. .. however.. it kills the process to everyfile in the directory. whereas.. if i used the batch command w/ handle.exe, only the file's process is killed. would you know why? Here's my coding: PHP Code:
PHP Code:
|
It will only kill processes with a handle open on the file. If you can prove otherwise then I will need a sample script. What type of file is it by the way?
Stu |
Hey Afrow, I recently began to use your LockedList plugin and it works beautifully! It's perfect for exactly what we need, however the only issue I am running into is that the percentage sometimes gets out of whack. At times it works fine going from 0-100%, however other times it goes up to ~55000%. It's very odd behaviour, and was just wondering if there's anything we could be doing wrong?
I'm running Windows 7 SP1, if you need anything just ask! Thanks |
Hi,
We are using LockedList in our setups and also been getting the huge %% issue. I investigated and fixed it. Going to clean the code up a bit and suggest my fix to the community very soon. |
Thanks! We were going to look into the issue at some point, but at the moment we are swamped with doing other things :) Glad someone looked into it!
|
1 Attachment(s)
First of all, sorry if my memory is letting me down. I've been investigating this quite a while ago and may be wrong in details. However we made a custom LockedList build with this fix applied, put it to use in production and never seen the huge percent issue since then.
AFAIR the issue may only appear when working with LockedList::AddFile. LockedList code has a function called GetSystemHandleInformation that retrieves a structure containing all open system handles. GetSystemHandleInformation is typically called twice: first time from GetSystemHandlesCount to get the total number of open handles and set maximum value of the progress bar, second time to iterate through handles and find processes locking the file. Now imagine you use LockedList::AddFile and LockedList::AddModule together in your setup. For AddModule LockedList uses a totally different approach and enumerates process modules only. To set maximum value of the progress bar it calls GetSystemHandlesCount to retrieve total number of handles (say, 50000) and GetSystemModulesCount to retrieve number of modules (say, 500) and sets progress bar top to 50500. Then it starts the actual search and iterates through handles and modules. The problem is GetSystemHandlesCount has a mistake and may fail in either of these calls. Fail in the first call will cause progress bar maximum to be 500 instead of 50500 so during the search it will go over the top and show huge percent values. Fail in the second call will break the search and file lockers will not be found. Now about the mistake. GetSystemHandleInformation calls WinAPI function called NtQuerySystemInformation. Again it does this twice: first time to know the size of the structure to contain system handles, second time to fill the structure. The problem is number of open handles may increase between these calls so that memory allocated for SYSTEM_HANDLE_INFORMATION structure will not be enough to hold it. This is likely to happen during intense activity of other processes. In that case NtQuerySystemInformation will return STATUS_INFO_LENGTH_MISMATCH and invoker must take care of this by increasing the buffer and trying again, but LockedList does not. See http://forum.sysinternals.com/howto-...opic18892.html for reference: Quote:
code: ntstatus.h has to be included for checking return codes. See full diff for 2.6.1.4 attached. I suggest this to be included into project mainline. |
New plug-in version:
Quote:
Thanks for your input guys! Stu |
Thanks Stu.
Works very nice (I am using only 32 bit version) -Pawel |
That was quite fast, thanks so much! Thanks to voidcast too, your solution worked perfectly :D
|
New version:
Quote:
Stu |
corrupted stack
1 Attachment(s)
Hi Afrow,
I´m using the LockeList with silentsearch, and have noticed that at the end of function the stack is corrupted with some lockedlist internal values. Here´s some of the example on file lockedlisttest.nsi, see the attached image to better understand what i´m saying, many thanks! In my script I have some 'Pop´s' after the search and then I've noticed that is not the value that i'd have pushed, so I´ve used ${stack:: Debug} "0" to see the values in the stack PHP Code:
|
Hi,
the documentation of plugin and the examples has some errors: 1) The order of parameters is wrong, you have to write: LockedList::SilentSearch /async $R0 2) The return value of fct SilentWait isn't "/wait", but only "wait" Then the async mode works fine:-) Thanks Stu for valuable plugin! Kampel |
Problem with superfetch on windows
Hi,
we are using this plugin for quite a while and it does a great job. However we recently had a customer which complained that the installer was showing a program that wasn't really running. Finally it came out that it was blocked by superfetch. A windows caching mechanism to improve loading speed of executables that are used often. Would be very nice if the plugin could catch this case in the future. Best, Satara |
What plug-in calls are you using to detect the running application? How did you come to the conclusion that superfetch is to blame? I'm not sure this is something that can be easily fixed, if at all.
Stu |
I am using
to add the executables. After we couldn't find the application in the process tab in the task manager, we noticed that the application appeared in the CPU resource monitor. We were able to perform the installation after restarting in safe mode (regular restart didn't help). But I couldn't test if it also would have worked when only stopping the superfetch service manually. I will do so if that happens again.code: |
If you're using AddCustom then you are handling the detection yourself in a callback function... What code are you using in your callback function?
Stu |
I am sorry, I've created this quite a while ago and wasn't aware of the details anymore. In my callback I'm just using
on the executable.code: |
If you are using IsFileLocked on your main application executable then you should use the AddModule function instead. AddCustom+IsFileLocked is really an alternative to AddFile (for open file handles). AddModule is specifically for exe/dll/ocx.
Stu |
Ok thanks for your advise. I will consider that.
|
Hi Stu,
after changing to AddModule() I remembered again, why I decided to use AddCustom() back then. When I use AddModule the title of the application is unpredictable, it just gets a random name and also the icons are sometimes stored separately. Here is the output of the locked list with different versions of CINEMA 4D and 3ds Max: 1 [52212] - Console - CINEMA 4D 64 Bit.exe 2 [55492] - MAXScript Debugger - 3dsmax.exe 3 [54784] - V-Ray messages - 3dsmax.exe 4 [55396] - NVOGLDC invisible - CINEMA 4D 64 Bit.exe 5 [55588] - NVOpenGLFbo - CINEMA 4D 64 Bit.exe 6 [55860] - MAXON Online Updater - CINEMA 4D 64 Bit.exe 7 [55444] - Warning Loading Plug-in DLL - 3dsmax.exe 8 [55040] - MAXScript Debugger - 3dsmax.exe Is there any possibitly to pass an explicit title or icon to AddModule or is there an alternative which I could use instead of IsFileLocked when using AddCustom? |
Would it be preferable to use the file description instead (i.e. under Properties -> Details)? I believe this is what Task Manager uses in later versions of Windows.
Stu |
I think the optimal solution would be the title of the main window, because the description is the same for different versions of the application. But the description would be a satisfying solution :)
|
New version:
Quote:
|
Why is this ? : http://nsis.sourceforge.net/File:LockedList.zip
Quote:
|
I don't get that, it's fine for me. Maybe it's your antivirus?
|
Quote:
Stu |
This post is on page http://nsis.sourceforge.net/File:LockedList.zip
Page open the Opera browser. Antivirus is disabled ! Screenshot : http://www.mediafire.com/?waxa911a5pt74tr |
| All times are GMT. The time now is 17:39. |
Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.