regsvr32 keeps running (dialog boxes missing)


  1. Posts : 15
    XP, VISTA, WIN7
       #1

    regsvr32 keeps running (dialog boxes missing)


    Hello World,

    I have a programm that is copying a file (and its needed .dll files) to a selected folder. After the copy process the .dll files need to be registered with regsvr32. This is also part of the programm.
    On WIN XP there have been shown a dialog box that the regstration have been completed successfully for each call of regsvr32.

    On WIN7 the regsvr32 call will be started (regsvr32.exe can be seen in TaskManager) and the regsitration has been completed successfully, but the dialog box is not appearing.
    In TasManager the regsvr32 don't dissapear and regsvr32 application is still 'blocking' the .dll files, because I can not rename the files or the folder where the files are inside.

    Anyway the file that is needing the .dll files to be able to run is working fine, therefore the registration have been completed successfully.
    Therefore I guess that this can be some sort of display bug?!


    Does anyone know how it is possible that the registration with regsvr32 can be done in the correct way?


    Using the silent paramter /s does not help in this case, because I need to get an information if the registration will not be completed successfully. Silent is disabling all messages including the one that I need.


    My WIN7 configuration:
    * User is administrator
    * UAC is disabled
    * more information needed?


    If anyone has some helpful notes or comments, please let me know!


    Kind regards,
    Schnacke
      My Computer


  2. Posts : 2,009
    Windows 7 Ultimate x86
       #2

    Why on earth would a dll have to be registered, every time it runs ?
    That doesn't make any sense to me.

    As for your question: check if the regsvr32 maybe is invoked with the switch /s (silent)
    That would explain the missing box

    -DG
      My Computer


  3. Posts : 15
    XP, VISTA, WIN7
    Thread Starter
       #3

    (1)
    SledgeDG said:
    Why on earth would a dll have to be registered, every time it runs ?
    That doesn't make any sense to me.
    My programm is only for copying a file (and all related and needed .dll files) to a new location. Typically the user is deleting the old folder, so registration via regsvr32 is necessary!

    (2)
    SledgeDG said:
    As for your question: check if the regsvr32 maybe is invoked with the switch /s (silent)
    That would explain the missing box

    -DG
    see the following:
    WIN7Schnacke said:
    Using the silent paramter /s does not help in this case, because I need to get an information if the registration will not be completed successfully. Silent is disabling all messages including the one that I need.



    call of regsvr32 has been completed.
    it seems that the dialog boxes are the only things that are missing???


    It would be very nice, if anyone could leave me a comment...



    Kind regards,
    Schnacke
      My Computer


  4. Posts : 15
    XP, VISTA, WIN7
    Thread Starter
       #4

    Hello World,

    please allow me to determine my problem more explicitly.



    The details:
    There is an application (call it App.exe) that needs some COM registrations and related .dll and .ocx files. These will be registered through a small C++ tool which is written with MS VS6. Let's call this tool Tool.exe.
    For your interest the detailed registration:
    Code:
    
    HINSTANCE hinst;
    hinst=ShellExecute(NULL,"open","regsvr32",m_Path+"\\Important.dll\"",NULL,SW_HIDE);
    // ** if registration failed: show a message box
      if ((int)hinst<=32) AfxMessageBox("Register Important.dll failed");
    On XP after each regsvr32 call there will be shown an information in the way of "registration completed successfully" which is the same information if I would call regsvr32 from command line.

    Unfortunately on WIN7 there will be shown NO information.
    Because App.exe necessarily need the registered components I can check easiliy if the registration has been completed.
    BUT the problem is that in taskmanager you can see that there are still some regsvr32.exe processes running and these processes are 'sticking on the .dll files'.
    While the processes can be seen it is impossible to rename the files nor the folder where they are inside.
    This means that the regsvr32 call has not been completed. It seems that the information (via message box or dialog??) is the only thing that is missing.

    How can .dll and .ocx files be registered correctly (similar to regsvr32 via CMD) in WIN7 programmatically?

    Some facts:
    * UAC is disabled
    * User is Administrator
    * User name is John
    * Tool.exe is located within a folder on C: drive
    * Tool.exe was started by user manually
    * I started Interactive Service Detection but no information was shown


    I did try so far to do the change the way of registration to
    (1) LoadLibrary( dllFile )
    (2) GetProcAdress ( DllRegisterServer)
    (3) Call DllRegisterServer
    But this failed for two files. One file that was not working is MSXml4.dll (Microsoft XML 4.0 SP2) where msxml4r.dll (Microsoft XML 4.0 SP1 Resources) is in the same directory. (When I remember correctly the 4r.dll file is necessary for the 4.dll file).

    I don't want to get to much in detail with this error so far, because I hope that some experienced WIN7 C++ developer will find a solution quickly!


    If you need any further inputs, please let me know!


    Hopefully someone has some good news for me!


    Kind regards,
    Schnacke
    Last edited by WIN7Schnacke; 30 Mar 2011 at 09:41.
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 18:36.
Find Us