Peculiar file type

Hello

After the latest upgarde (10.2.0.0) file type for files associated with one program are displayed as "@C:\Program Files\Common Files\Embarcadero\Shell\BDSSR.dll,-1710" when it shall be, for example, "Delphi Source File".

What does Windows Explorer show for the same file in its type column?

Does the DLL in the name exist on your machine? Is it actually in Program Files, or Program Files (x86)?

Hello

Explorer show the correct type.

The DLL exist in "Program Files (x86)" but not in "Program Files".

In that case, Embarcadero haven't registered the DLL properly.

From testing, if the string is a @ which points to the wrong Program Files path, then Explorer won't find the DLL either, but will then fall back on the (usually) English name which is also in the registry in another place. If you were running Windows in another language you'd still see the English string for the filetype in Explorer, even though the DLL is supposed to have the string in various different languages (which is the purpose of using @ instead of the string itself).

On the other hand, Opus displays the string as-is if the DLL isn't found.

We might change Opus to fall back differently, but the problem is really that the DLL isn't registered properly. The path should be changed to Program Files (x86) if that is where the DLL is.

Hello

I understand, and I don't really care so much if the file type is an explaining text or not. The real problem is that the file type displayed is to long as the columns are autosized. If you can't find the dll, can you not just show the three letter file extension? That is at least correct information.

Yes, that's what we plan to do (more or less).

But you can fix it now on your PC by editing the registry to correct the path, if you want.

Hello

Edit what key in the registry? If I search the registry for BDSSR.dll I can only find paths to the correct location, "Program Files (x86)".

It'll be a "FriendlyTypeName" value under HKEY_CLASSES_ROOT/. or under the filetype which that extension points to.

It's hard to suggest exactly where to look without knowing what the filetype/extension is, though. :slight_smile:

Note that it may be using environment variables in the path, so searching for the full path may not work, but searching for values containing BDSSR.dll must find it, as it has to be in the registry somewhere (unless they've done something really weird, like have a localised string that points to another localised string; but I doubt that is even allowed and it would be pointless).

Make sure "match whole string only" is not turned on when you do the search in RegEdit, too.

Hello

If I look for the extension pas, there is a key .pas under HKEY_CLASSES_ROOT. This key has the default value BDS.PasFile. When I follow that key (BDS.PasFile), it has the default value "Delphi Source File" and FriendlyTypeName has the value @%CommonProgramFiles%\Embarcadero\Shell\BDSSR.dll,-1710 If %CommonProgramFiles% is expanded to "c:\Program Files (x86)\Common Files" and added to the rest of the path you will have
"c:\Program Files (x86)\Common Files\Embarcadero\Shell\ " and there you will find BDSSR.dll. Is this not correct?

On 64-bit Windows:

CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files