hi all,

is there a program that lists all non-default fonts that have been manually installed on your computer?

Max

Dani AI

Generated

Most font utilities just dump every installed face and do not try to decide which ones came with Windows. As noted, the reliable ways are either to compare against an authoritative "default fonts" list for the specific Windows version, or to use a local heuristic that flags fonts added after the OS install and fonts in per-user locations. was right that a web search finds tools, but many tools do not make that distinction.

Practical, fast method: enumerate font files and registry mappings, get the OS install date, and flag files with creation times newer than the install or files that live in user-font folders. The key locations are the system fonts folder (C:\Windows\Fonts), the per-user fonts folder (%LocalAppData%\Microsoft\Windows\Fonts), and the registry key HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts that maps font names to files.

The following PowerShell snippet implements that heuristic and produces a candidate list (fonts added after install or not present in the HKLM font map):

# heuristic: fonts added after OS install or not present in HKLM font map
$os = Get-CimInstance Win32_OperatingSystem
$install = [Management.ManagementDateTimeConverter]::ToDateTime($os.InstallDate)

$fontFolders = @("$env:windir\Fonts", "$env:LOCALAPPDATA\Microsoft\Windows\Fonts")
$files = Get-ChildItem -Path $fontFolders -Include *.ttf,*.otf,*.ttc,*.fon -File -Recurse -ErrorAction SilentlyContinue

$regProps = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts').PSObject.Properties |
            Where-Object { $_.Name -notmatch '^PS' }
$regFileNames = $regProps | ForEach-Object { [System.IO.Path]::GetFileName($_.Value) }

$report = $files | Select-Object FullName,Name,CreationTime,LastWriteTime,
                     @{Name='Registered';Expression={$regFileNames -contains $_.Name}},
                     @{Name='AddedAfterInstall';Expression={$_.CreationTime -gt $install}}

$report | Where-Object { $_.AddedAfterInstall -or -not $_.Registered } |
        Sort-Object AddedAfterInstall,CreationTime -Descending |
        Format-Table -AutoSize

Notes and cautions: this is heuristic. Windows Updates or app installers can update timestamps or add fonts after install, so some default fonts may show up as "added later." For a definitive answer, export a baseline list from a clean install (or use Microsoft's per-version font lists) and compare it to the current machine. If a GUI tool is desired later, this script provides the logic to build one or to seed a whitelist of default font names.

Recommended Answers

All 3 Replies

I don't know. but you can search it in web.

iv looked around quite a lot, most of them dont actually differenciate between new and default fonts. Maybe it would be good for somebody (me if i have the time to learn c+!) to design one. Id use it! :D

bump

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.