LockedList plug-in

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • Afrow UK
    Moderator
    • Nov 2002
    • 8434

    #31
    I shall see if I can reproduce this on my XP machine soon. I do not have Vista unfortunately. This is interesting though as they are both exactly the same code bases for both functions except one directs output to the stack and one to a list view control!

    Stu

    Comment

    • RobertStrong
      Junior Member
      • Jan 2006
      • 22

      #32
      After a quick peruse of the code it appears that EnableDebugPriv is only called when using the internal ui (e.g. LoadDialog).

      *edit* that is the problem
      Last edited by RobertStrong; 15 September 2007, 01:33.

      Comment

      • Afrow UK
        Moderator
        • Nov 2002
        • 8434

        #33
        Oh right woops :S

        Stu

        Comment

        • kalverson
          Senior Member
          • May 2007
          • 134

          #34
          LockedList Plug-in:

          The accelerator keys do not work for the next/back buttons. Only the mouse works.

          Comment

          • kalverson
            Senior Member
            • May 2007
            • 134

            #35
            Our tester has been experiancing an intermitant crash in the LockedList.dll plug-in. The crash happens during initialization (dialog is showing 0% on progress) The image captures is too large to attach. Here is the script used:

            ;
            ; This function is called to display any locked files.
            ;
            Function LockedListShow

            ;Creator function
            !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLElock)" "$(TEXT_IO_SUBTITLE2)"

            LockedList::AddFile /NOUNLOAD "$INSTDIR\${PRODUCT_NAME}"
            LockedList::AddModule /NOUNLOAD "$INSTDIR\${PRODUCT_NAME}\${PRODUCT_LAUNCHER_EXE}"
            LockedList:ialog

            FunctionEnd

            Here is the crash information:

            LockedList.map

            0001:00001891 ?EnumSystemModules@@YGHP6GHUFILE_INFORMATION@@J@ZJ@Z 10002891 f SystemEnum.obj
            0001:00001a97 ?EnumProcessIds@@YGHP6GHKJ@ZJ@Z 10002a97 f SystemEnum.obj

            offset from error signature: 000029b5
            base of EnumSystemModules: 2891
            -------------------------------------
            124 relative --> Line 478

            SystemEnum.asm

            ; 476 :
            ; 477 : // Get the file path of the module.
            ; 478 : if (GetModuleFileNameEx(hProcess, hModules[j], File.FullPath, MAX_PATH))

            push 260 ; 00000104H
            mov eax, DWORD PTR [eax]
            mov DWORD PTR _File$54859[ebp], eax
            lea eax, DWORD PTR _File$54859[ebp+4]
            push eax
            mov eax, DWORD PTR -24+[ebp]
            push DWORD PTR [eax]
            push esi
            call DWORD PTR _GetModuleFileNameEx
            test eax, eax
            je SHORT $L54877


            SystemEnum.cod
            ; Line 478
            00109 68 04 01 00 00 push 260 ; 00000104H
            0010e 8b 00 mov eax, DWORD PTR [eax]
            00110 89 85 40 fd ff
            ff mov DWORD PTR _File$54859[ebp], eax
            00116 8d 85 44 fd ff
            ff lea eax, DWORD PTR _File$54859[ebp+4]
            0011c 50 push eax
            0011d 8b 45 e8 mov eax, DWORD PTR -24+[ebp]
            00120 ff 30 push DWORD PTR [eax]
            00122 56 push esi
            00123 ff 15 00 00 00
            00 call DWORD PTR _GetModuleFileNameEx
            00129 85 c0 test eax, eax
            0012b 74 5c je SHORT $L54877
            ; Line 481

            Comment

            • Afrow UK
              Moderator
              • Nov 2002
              • 8434

              #36
              New version v0.4:


              v0.4 - 27th September 2007
              * Module or file names can now be just the file name as opposed to the full path.
              * Folder paths are converted to full paths (some are short DOS paths) before comparison.
              * Fixed typo in AddModule function (ModulesCount>FilesCount). Thanks kalverson.
              * List view is now scrolled into view while items are added.
              * List changed to multiple columns.
              * Debug privileges were not being set under SilentSearch.
              * Added /ignore switch that prevents the Next button being disabled.
              * Added AddApplications to add all running applications to the list.
              * Added processing mouse cursor.
              * Added right-click context menu with Close and Copy List options.
              * Added progress bar.
              * Added default program icon for processes without an icon.
              * Added code to resize controls for different dialog sizes.
              I cannot reproduce that crash kalverson and by the looks of it it's out of my control, unless the module handle being passed is not valid. I could surround it by a try{} block but I am not keen on that idea.

              Stu

              Comment

              • RobertStrong
                Junior Member
                • Jan 2006
                • 22

                #37
                Thank you Stu!

                Comment

                • jrhutch
                  Junior Member
                  • Feb 2008
                  • 11

                  #38
                  I have a question about the LockedList plugin. Does AddFile support searching an entire directory? I couldn't find where it specifically said it was supported in the readme. I wanted to know that this is an option, before I go and try to fix my installer problems using this plugin.

                  Hopefully it does, because this plugin looks awesome and is basically the perfect solution for what I'm trying to do.

                  Comment

                  • Afrow UK
                    Moderator
                    • Nov 2002
                    • 8434

                    #39
                    You mean if the file is in a folder or possibly in sub folders?

                    Stu

                    Comment

                    • jrhutch
                      Junior Member
                      • Feb 2008
                      • 11

                      #40
                      Yes, I want it to search my entire application directory to make sure nothing is being used before I go and try to update files. I didn't see anywhere that said wildcards were supported, but if then are, then that is fantastic. Thank you!

                      Comment

                      • Afrow UK
                        Moderator
                        • Nov 2002
                        • 8434

                        #41
                        Sorry, wild cards are only supported for window classes/captions. If your executable name is unique enough, just use AddModule \File.exe or AddFile \File.txt

                        The appended \ ensures that it's a file under a folder and not just the end of a file name.

                        Stu

                        Comment

                        • jrhutch
                          Junior Member
                          • Feb 2008
                          • 11

                          #42
                          Sorry, my question was for adding multiple files, such as AddFile $Drive\SomeDirectory\*.*, or something to that effect.

                          Comment

                          • Animaether
                            Major Dude
                            • Jun 2001
                            • 1173

                            #43
                            I'm running into two problems with LockedList...

                            1. It can't seem to detect that the files I specified are in use.
                            I'm using:
                            code:

                            LockedList::AddModule /NOUNLOAD "$SYSDIR\OurDLL.dll"

                            ( I take it /NOUNLOAD is still required even in the new NSIS handling? )
                            But as far as the search is concerned, the file is not locked. Unlocker ( http://ccollomb.free.fr/unlocker/ ) says otherwise.
                            Any tools out there that might help in identifying why LockedList doesn't see it while Unlocker does?
                            ( I'd try whouses.exe as well, but I seem to be whouses.exe-less )


                            2. LockedList crashes after parsing two of such modules.
                            The search process reaches 93%, usually when it will display that it found no processes using the file(s), and simply crashes.

                            Stu - if you need a dump for #2 (oh boy, bad puns), just let me know.

                            Comment

                            • Animaether
                              Major Dude
                              • Jun 2001
                              • 1173

                              #44
                              well the crashes seem to have magically gone away - #1 remains an issue, however

                              Comment

                              • freneticmonkey
                                Junior Member
                                • Jun 2009
                                • 1

                                #45
                                I have had a look at the source code for the lockedlist plugin and it currently only searches the first 127 modules or files loaded for a process. On my machine Internet Explorer with minimal extensions installed has 150+ modules loaded, which means that searching for ActiveX plugins usually fails.

                                Comment

                                Working...
                                X