Like When DelphiSpeedup cannot register itself in Delphi on Windows Vista/7/8, GExperts also had problems installing on Windows Vista and up when Delphi runs in a non-elevated account.
It said it installed fine, but it didn’t get included when Delphi was started. The reason was that it got installed in the wrong root key.
What happened is that GExperts installed itself into the HKLM root:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Borland\BDS\5.0\Experts]
GExperts=C:\Program Files (x86)\GExperts for Delphi 2007\GExpertsDelphi2007.dll
But it should have installed itself in the HKCU root:
[HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Experts]
GExperts=C:\Program Files (x86)\GExperts for Delphi 2007\GExpertsDelphi2007.dll
The reason is similar to the DelphiSpeedUp issue:
- The regular user has a Delphi installation, but no elevated rights.
- The installer runs under UAC as elevated user.
- The elevate user has no Delphi installation.
I wrote a batch file that copies the HKLM information to HKCU for the Delphi 2007 version of GExperts. When in the future I bump into similar things for newer GExperts versions, I will add those batch files as well.
The batch file uses a few tricks:
- A redirected TYPE NUL will emit an empty file.
- It pipes a file with TYPE through FIND so there is no line with dashes in the output.
- It dynamically builds a .REG file for registry import.
- It uses REG to export/import registry settings, as REGEDIT might be disabled per policy.
Note this was on an x64 machine hence the Wow6432Node. But the batch file works both for x64 and x86 installations of Windows.
–jeroen
Filed under: Batch-Files, Delphi, Delphi 2007, Development, Scripting, Software Development