Se me ocurre trabajar en base a:
Y armas el path, editando, recortando, y pegando "\FONTS".
Luego si por alguna razon la carpeta de fuentes se llamaria diferente podrias armar un listado de ecepciones.
De esta manera tendrias algo casi dinamico para averiguar donde esta esa carpeta.
Otra Solucion webeando es esta:
Código C#:
Ver original[DllImport("shell32.dll")]
private static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder, IntPtr hToken,
uint dwFlags, [Out] StringBuilder pszPath);
public static string GetFontFolderPath()
{
StringBuilder sb = new StringBuilder();
SHGetFolderPath(IntPtr.Zero, 0x0014, IntPtr.Zero, 0x0000, sb);
return sb.ToString();
}
pero nunca me gusto andar jugando con las APIs, ademas creo que no funciona con todos los windows, yo haria la primera opcion que te comente.