What is the purpose of the Fonts key in the Registry?

3

What is a purpose of the font records here?

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

I tried to put a font in other directory than \Windows\Fonts and the path to it in this key. I could then see the font in other programs. However, when I just put the font in the Fonts folder and did nothing in the Registry, I can still see it everywhere. On the other hand, when I made a fake entry in the Registry, I didn't see it in other programs.

Does anything use this key?

kajojeq

Posted 2014-09-17T15:12:48.580

Reputation: 143

Could you please clarify in steps what you exactly did here ? The paragraph is a little unclear – Dhiwakar Ravikumar – 2014-09-19T06:16:32.827

Answers

1

The registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts contains all the fonts and the font file associated with the Font Name (*.ttf). You can read more about it here

http://support.microsoft.com/kb/102960

Fonts Entries:

The following Registry path is for entries describing the fonts used for displaying information in applications created for Windows NT or versions of Windows for MS-DOS:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows NT\CurrentVersion\Fonts

Entries in the Fonts key have the following format:

Font Name REG_SZ font filename

These value entries define the installed fonts and their related filenames. These are the default value entries:

Dhiwakar Ravikumar

Posted 2014-09-17T15:12:48.580

Reputation: 1 551

2

Dhiwakar Ravikumar's answer is correct in that the subkey contains a list of font files and that Windows won't see font files without an entry there. After some experimentation, however, I discovered that the name of each entry doesn't matter at all, at least for modern programs. (It's conceivable that older programs rely on it.)

Just putting a font file in \Windows\Fonts won't actually make it used. When you copy fonts there with Windows Explorer, it helps you by registering the file, but if you just put the file there with a command prompt, nothing special will happen and the font won't get registered.

Windows gets the font style names from the font files, so you can party on these values' names without causing any trouble. Font families are also defined by the font files (source), so the "Bold" and "Italic" and whatnot in entry names doesn't matter. If you change the data to point to a non-existent file, however, Windows won't see the font as valid and so won't tell programs about it. Other fonts in the family will still be loaded, though.

In short, this key is just a list of files for Windows to investigate.

Ben N

Posted 2014-09-17T15:12:48.580

Reputation: 32 973