関連のWindows 7用のケースを追加することは簡単です、これは信頼性の高い方法であると思われますNT \ CurrentVersion \ Fonts \ ここでファイル名と代替ファイルパスを取得します。 フォントの名前は、ユーザーのロケールによって変更できるため、便利ではありません。
2)TrueTypeファイル(.ttf、.ttc、.otf)を読み込みます。 FreeTypeを使用https://www.freetype.org/)。 freetypeライブラリを初期化し、FT_New_Face(ライブラリ、パス、0、&の顔)で顔を読み込みます。
3)FreeTypeを使用してフォントファミリ名を取得します。 FT_Get_Sfnt_Name_Count()およびFT_Get_Sfnt_Name()を使用して文字列テーブルを取得します。 エンコーディングがAnsi、UTF16などであるかどうかを確認する必要があります。一部の文字列は複数の異なる言語とエンコーディングであるためです。
4)OS2のTrueTypeプロパティを取得します。 OS2構造体を取得するには、(TT_OS2 *)FT_Get_Sfnt_Table(face、ft_sfnt_os2)を使用します。 ドキュメントを使用して構造体を解釈するhttps://www.microsoft.com/typography/otspec/os2.htm#fc
5)フォントファイルのパス、ファミリ名、スタイルプロパティなどの情報があります。これらのリストを作成して、フォントファミリとスタイルに基づいてファイルを検索します。
フォントのHFONTハンドルがある場合は、私の[提案されたソリューション]を試すことができます(http://stackoverflow.com/questions/16769758/get-a-font-filename-based-on-the-font-ハンドル-hfont)。あなたがそのフォントを扱っているかどうかの質問が不明なので、私はここに答えを加えたくありませんでした。 –