我想获得字体文件的文件名,谁知道如何操作
比如通过 Arial 获得 arial.ttf
除了通过注册表还有什么其他的方法吗?
注册表查找中文字体时不准确

解决方案 »

  1.   

    我认为除了访问注册表,没有其他更好的办法了当然,还有一个避开注册表,但效率较低的办法:得到系统字体文件列表,然后循环这个列表:
    System.Drawing.Text.PrivateFontCollection lstFontCollection = new System.Drawing.Text.PrivateFontCollection();
    lstFontCollection.AddFontFile(szFileName);
    if (lstFontCollection.Families[lstFontCollection.Families.Length - 1].Name == 你的字体名称)
    {
          //执行你的操作
    }
    //最后释放掉
    lstFontCollection.Dispose();这样也是可以的,但就是效率肯定低
      

  2.   

    注意:先得到系统字体文件名称列表,然后上面的szFileName就是取自这个列表
      

  3.   


    我感觉从HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts下面读取出来的数据比较完整我不知道你说中文不准确是什么意思,我试了几个中文文件名名的字体,也可以啊