Hi guys

Hi guys,
Someone out there running #10Seattle Professional can confirm whether the installation creates the registry keys

HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0
or
HKEY_LOCAL_MACHINE\SOFTWARE\Embarcadero\BDS\17.0
(depending on "Install for all users" or "install for logged user" setting during the install, of course)

and a string value  "Edition=Professional"?
This is true since BDS 2006 at least, but does not seem to be true for Delphi 10 Seattle anymore. Is the value named "Edition" missing?

Comments

  1. I have the key and a string value of Edition along with eleven other values for the same key.

    ReplyDelete
  2. Hi Milan Vydareny Thanks for your answer. Weird. One customer reported that he has 2 different machines running Delphi 10 Seattle Pro and could not find this value. A code that uses this key/value to detect Delphi edition fails and the whole setup program also fails. Weird...

    ReplyDelete
  3. I bet they are under the 32 bit view, HKLM\Software\Wow6432Node\Embarcadero\...

    ReplyDelete
  4. Hi David Heffernan yes you may be correct. Thanks for the heads up

    ReplyDelete
  5. HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0 exists and has no Edition entry after installation but has Edition=Enterprise after you started Delphi the first time. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Embarcadero\BDS\17.0 exists and has Edition=Enterprise directly after installation. HKEY_LOCAL_MACHINE\SOFTWARE\Embarcadero\BDS\17.0 doesn't exist.

    ReplyDelete
  6. Thanks Jeroen Wiert Pluimers That's interesting. In older versions (e.g. XE2) we have:
     
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0 exists and has Edition entry.
    This is the difference. The others are just like yours.

    ReplyDelete
  7. My HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0 has Edition value, set to Professional

    ReplyDelete
  8. I have one entry in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Embarcadero\BDS\17.0 with a string value of Edition and also HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0 also with a string value of Edition.

    The machine version is in the Wow6432Node but the user version is not.

    I also have 15.0 and 16.0 in both places. So in my case, it's pretty consistent.

    ReplyDelete
  9. Alexandre Machado It looks like it's different after installation without ever starting it. After starting Delphi for the first time. HKLM gets copied to HKCU. "reg query HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0" and "diff" are my friends (:

    ReplyDelete
  10. That's quite normal. And, for the record, on a 64 bit machine, I think everybody should know by now, to be alive to 32/64 bit views of the registry.

    ReplyDelete
  11. David Heffernan I never looked into that before. The behaviour is indeed completely logical to me.

    ReplyDelete
  12. Yes , the behavior is expected. IIRC since Delphi 5 at least the HKLM key is copied to HKCU when IDE is launched the first time. In the old times I used to delete the whole HKCU\Software\Borland\Delphi\xxx key in order to reset the IDE in case of something really wrong happening.
    Thank you guys for all the information.

    ReplyDelete
  13. Alexandre Machado thanks for the history. It's indeed very logical. I never noticed until now as since about Delphi 2, I've had this standard installation sequence: run installer, start Delphi, register if needed, check basics, install GExperts, start Delphi, check if GExperts works, repeat with more 3rd party stuff until done. I've always been a single user and usually in VMs with a good backup/restore schedule often even with a single Delphi version in a VM. All of the issues I ever had were with HKLM easily resolvable by restoring a backup. It's good to know how HKCU relates to HKLM. Thanks!

    ReplyDelete
  14. And while we are on the same topic, you can also execute the IDE with the -r to get a new fresh copy of HKLM into a different area of the current user registry, where the parameter you pass to -r replaces the product name.

    ReplyDelete
  15. Thanks for this info Marco Cantù . I didn't know that! :-)

    ReplyDelete

Post a Comment