c#代码安装字体文件

 public class FontOperate
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern int WriteProfileString(string lpszSection, string lpszKeyName, string lpszString);

        [DllImport("user32.dll")]
        public static extern int SendMessage(int hWnd,
        uint Msg,
        int wParam,
        int lParam
        );
        [DllImport("gdi32")]
        public static extern int AddFontResource(string lpFileName);

        public static bool InstallFont(string sFontFileName, string sFontName)
        {
            string _sTargetFontPath = string.Format(@"{0}\fonts\{1}", System.Environment.GetEnvironmentVariable("WINDIR"), sFontFileName);//系统FONT目录
            string _sResourceFontPath = string.Format(@"{0}\Font\{1}", System.Windows.Forms.Application.StartupPath, sFontFileName);//需要安装的FONT目录
            try
            {
                if (!File.Exists(_sTargetFontPath) && File.Exists(_sResourceFontPath))
                {
                    int _nRet;
                    File.Copy(_sResourceFontPath, _sTargetFontPath);
                    _nRet = AddFontResource(_sTargetFontPath);
                    _nRet = WriteProfileString("fonts", sFontName + "(TrueType)", sFontFileName);
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
    }
使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UtilityHelper;

namespace LHCity_LMS_Client.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            FontOperate.InstallFont("simfang.ttf", "simfang");
            Console.ReadLine();
        }
    }
}

  

原文地址:https://www.cnblogs.com/chlm/p/9451376.html

时间: 2024-10-11 03:31:40

c#代码安装字体文件的相关文章

Android 代码安装APK文件

代码安装APK文件 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");

Linux安装字体文件

登录生成验证码的时候使用了monaco.ttf字体,没有安装字体的情况下,会报错:can't open resource Linux安装字体的方式其实很简单,就是调用fc-cache -f -v命令,其实我们可以什么都不添加直接调用这个命令 可以看到它会去/usr/share/fonts/truetype等目录以及你自己的个人用户目录 ~/.fonts/ ~/.local/share/fonts ~/.fontconfig ~/.cache/fontconfig等目录进行字体文件ttf的索引查找

windows系统下,在C#程序中自动安装字体

在Windows系统中,原有自带的字体样式有限,有时候我们的程序会使用到个别稀有或系统不自带的字体.因此我们需要将字体打包到程序中,当程序启动时,检测系统是否有该字体,如果没有则安装该字体,也可以动态加载字体. 1.1.使用代码安装字体 注意:安装字体时,需要windows的管理员权限. [DllImport("kernel32.dll", SetLastError = true)] public static extern int WriteProfileString(string

Android 在代码中安装 APK 文件

废话不说,上代码 private void install(String filePath) { Log.i(TAG, "开始执行安装: " + filePath); File apkFile = new File(filePath); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >

Microsoft Windows Kernel .fon字体文件远程代码执行漏洞(MS11-077)

漏洞描述 Microsoft Windows是流行的计算机操作系统. IWindows Kernel在.fon字体文件的处理上存在远程代码执行漏洞,远程攻击者可利用此漏洞以内核权限执行任意代码,导致完全控制受影响计算机. <*来源:Will Dorman 链接:https://docs.microsoft.com/en-us/security-updates/securitybulletins/2011/ms11-077 *> 解决方法 厂商补丁: Microsoft --------- Mi

iOS使用自定义字体的方法(内置和任意下载ttf\otf\ttc字体文件)

最近做了个有关阅读的应用,使用了自定义字体,学习了一下这方面的知识. 1.首先是最简单也普遍的做法,打包内置字符库文件: 把字体库文件添加到工程,如font1.ttf添加到工程,然后在工程plist添加一项Fonts provided by application,这是个数组,然后添加key item1,value就是刚才说的font1.ttf,如图: 那么在工程里就可以直接使用这个字体,直接用 + (UIFont *)fontWithName:(NSString *)fontName size

如何在Ubuntu安装*.exe文件

下载及安装 若你使用 Debian 或者 Ubuntu 之类的发行版,只需要一个命令即可完成安装: apt-get install wine 若你使用的为其他发行版,请访问 http://winehq.org/site/download 查询安装方法[]Wine 的配置 运行 winecfg 即可,里面有详尽的配置. 注意:Wine 1.1.4 以上版本的 winecfg 已经是中文界面了.[]Wine 中文乱码的解决 Wine 1.1.4 以上版本的中文支持得到了极大改善.如果您在使用较低版本

IOS添加自定义的字体文件

以文本为主体的app或者非文本主体的纯文本页面往往需要配置系统字体以外的特(qi)殊(怪)字体,所以这个技能有时候需要get的. 这项技能的步骤分为三步: 第一步:按照PM的要求下载文字文件,一般是.ttf文件,这里我们使用一款比较可爱的字体来进行演示 字体一般可以直接百度字体下载即可下载. 解压将其中的   草莓之心.ttf 添加到project的资源路径(其实任意路径都可以,为了遵循规范就都放到supporting files下面),记得选择copy item选项. 第二步:配置文件属性 点

Centos7 安装字体库&amp;中文字体

1.概述 在安装一些服务的时候,会涉及到字符编码与字体的问题,字符编码一般在数据库或代码级别设置,字体一般是在系统级别设置.如安装使用jira或confluence的时候,使用一些宏的时候经常会出现乱码的问题,还有就是程序中有中文的时候,在linux系统上总会乱码. 2.安装字体库 linux系统,一般不会安装字体,报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效: 如果有此命令,则可以通过fc-