Hi guys!
It's been a while since I last posted here.

I'm having an issue with not being able to remove non-installed fonts.
Meaning, the fonts are not installed in the Windows/Fonts folder and cannot be uninstalled the proper way.
These fonts came with some kind of hidden-object game that my nephew used to play and got copied into the game folder (ie, not installed into windows), and got left behind after I uninstalled the game.
But for some reason windows still claim that they are in use and thus cannot be removed.

Sure. I can reboot and delete them after that.
But why should I have to do that when the fonts aren't even installed on a system level.

If anyone can provide me with either a solution and/or an explanation, that would be awesome.
Thanks!

Dani AI

Generated

Short expert addendum that complements ’s report and the suggestions from and .

Windows can and does let applications load font files directly from an app folder (or via API calls such as AddFontResource/AddFontResourceEx), and fonts can also be installed per-user instead of being placed in C:\Windows\Fonts. If a font is loaded from a nonstandard location it can be active in one or more sessions even though the file isn’t in the Fonts folder; that state prevents modification or deletion until the font is unloaded. (learn.microsoft.com)

A low-disruption way to fix this is to locate the process that has the font file open and release it rather than rebooting. Use Resource Monitor (resmon) or Sysinternals’ Process Explorer / Handle to search for the font path or filename, then stop the process or close the specific handle (with great care). Example Handle usage (run as admin):

handle.exe -a "C:\path\to\game\fonts\badfont.ttf"
handle.exe -c 0x1a8 -p 1234   ; (closes handle 0x1a8 in PID 1234) -- use only if you understand the risk

Process Explorer and Handle are documented by Microsoft/Sysinternals; Handle warns that forcibly closing handles can cause instability. (learn.microsoft.com)

Also check both font registry locations and the per-user font folder before deleting anything. Run these to inspect what Windows knows about installed fonts:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
reg query "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"
dir "%LOCALAPPDATA%\Microsoft\Windows\Fonts"

Export or back up the registry before removing values. The Settings > Personalization > Fonts view can also show per-user installs. (support.microsoft.com)

If nothing else works, rebuilding the Windows font cache (stop the Font Cache services, delete the cache files, then restart) will force Windows to reload font registrations so orphaned entries stop blocking operations. That step is more advanced, so back up data and proceed carefully. (learn.microsoft.com)

This approach avoids a full reboot in many cases and explains why Windows still reports a font “in use” even when it isn’t in C:\Windows\Fonts.

Recommended Answers

All 4 Replies

When this happens to me I boot Safe Mode to try again. If a file (does not matter if it's a font or such) must go I boot up any of the current Linux Live CD/DVD/USB and get it done. No learning Linux. It's just boot, click around like Windows File Explorer, click on the file and press the delete key. Really old version of my answer is at http://tips.oncomputers.info/archives2004/0401/2004-Jan-11.htm

You don't say which version of windows, but if Windows "sees" your font, then it was installed in the Windows registry. To properly remove a font:
Win XP, 2K, 7-10: Control Panel and Fonts display all the "windows" fonts, or ask Cortana "fonts" (Win 8-10).
Right click on one and a menu appears and one choice is to delete it. Win 8.0 and 8.1 should be about the same. Win 7 and earlier will only access fonts thru the control panel. When you delete a font this way, Windows deletes the font file and removes it from the registry.
If you just delete the font file thru file manager, Windows will still thinks it's there because of the registry tells it so.
I suspect you deleted the font(s) by deleting the game including fonts. Because the registry reloads the font on bootup, Windows only choice is to report the font is in use (actually not there).
If you remember the Game's folder, search for that in the registry ("Regedit") and delete any line that references that directory name.
If you feel uncomfortable tackling the registry manually, I recomend "registry cleaning" software such as RegCure Pro ($50 - but a long enough free trial period to set yours straight). It's slow but very thorough. It will read each registry entry and if it loads a file, checks if the file exists - if not, the entry is removed.

Thanks for the replies. (This has happened to me in both Win7 and now on Win10).

I already knew that I can reboot and delete (as I stated in my OP). I was just hoping for an explanation as to why it happens.

Also. If the font was installed it would show up in Control Panel and Fonts, which by the way is the exact same thing as browsing to C:\Windows\Fonts if you didn't know.
But since the fonts I want to remove are not in there the explanation is that they are not actually installed. As I also said in my OP.
Oh, and also not in the registry.

My bet is the font is in the registry and was not found by you (yet.) I'm taking this as if this is a font showing up in other apps.

Why this happens is the app you installed used a non-standard way to add the font. As the method they used was not the usual way, we would be crystal ball users to guess what it did.

Best you can do is to use the tools, reboots and such to clean it up. Their uninstaller didn't clean it up so you are stuck with the mess they made.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.