#22 Fix MediaInfo_Tip installation in the nsis script

open
All (26)
5
2014-08-18
2008-12-19
Kurtnoise
No

MediaInfo_Tip.dll installation fails with bat file on Vista...So, here is a patch >> http://pastebin.com/f4bd06e38

Discussion

  • OK for UnRegDLL, but not for RegDLL, because DLL registration is done in the GUI only if the user wants it.
    I imagine I need RequestExecutionLevel too, so I add it too, but not the RegDLL stuff.

     
    • labels: --> All
    • assigned_to: nobody --> zenitram
    • status: open --> pending
     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    The problem remains then (at least on Vista)...

    I'll go back with a better script.

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    • status: pending --> open
     
  • Problem in registering the DLL?
    The code is in MediaInfo\Source\GUI\VCL\GUI_Preferences.cpp

    ***
    ShellExecute (NULL, _T("open"), _T("regsvr32"), _T("MediaInfo_InfoTip.dll /s"), NULL, 0);
    ***

    So a better way must be found for registering from ShellExecute (or from a .bat file for your testings).

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    regsvr32 xxx.dll requires admin high level to work on Vista. That's why your bat files don't work. You have to run command prompt as admin (right click on cmd.exe and execute as admin) and then you can run regsrv32 xxx.dll.

    My idea with the nsis script is something like :
    1/ create a new section for MediaInfo_tip.dll
    2/ make this section optional (by adding /o). This way, the checkbox is unchecked by default...
    3/ detect when the user select this box (via .onSelChange)
    4/ make the registration w/ RegDLL

    3/ & 4/ requires a function as you can see...but I've no time to do that yet. :-P

     
    • status: open --> pending
     
  • > regsvr32 xxx.dll requires admin high level to work on Vista

    Thanks for the info.

    > My idea with the nsis script is something like
    You always think the the tooltip is installed by the installer, but is is not: it is installed by the GUI.
    But the admin hih level detection with win32 calls is not from my competance.

    So... I propose we currently abandon this.
    I will check Vista problem when I have time (not soon :( ), both install from the GUI and uninstall from uninstaller. Putting the option in the installer is a workaround, but I hope to be able later to put it again in the GUI.

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    I understood that it's installed w/ the GUI...;-) Yes, it's a workaround.

    There is maybe another trick w/ the GUI to register this library but I need to test it first. :) I'm running on Vista...So, great. :D

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    • status: pending --> open
     
  • OK.

    I need the win32 functions to have admin privileges.

    And I need to grant admin privilege too in the uninstaller when the DLL is registered. Is it easy to do (or does the UnRegDLL funstion.
    Or must I grant admin privileges in any case for unisntalling? (and how?)

    Not easy...

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    with the

    ;Request application privileges for Windows Vista
    RequestExecutionLevel admin

    in the nsis script, this value is embedded in the xml manifest file for the installer and the uninstaller...So, no problem with the RegDLL and UnRegDLL.

     
  • OK.

    Now I need the same for the part of the GUI which needs it.
    Another work to do, between all the other works (new files...) I have to do!

     
  • Kurtnoise
    Kurtnoise
    2008-12-19

    just a random idea: did you try already to embed a manifest file into the GUI ?

     
  • There is already one (MediaInfo\Source\GUI\VCL\Manifest.xml), but made for WinXP, not Vista.
    But I don't want to run always the GUI in admin mode. Only ask admin rights when the user want to register the DLL...