C 自動安裝字型

2021-09-29 08:04:27 字數 2346 閱讀 2492

在windows系統中,原有自帶的字型樣式有限,有時候我們的程式會使用到個別稀有或系統不自帶的字型。因此我們需要將字型打包到程式中,當程式啟動時,檢測系統是否有該字型,如果沒有則安裝該字型,也可以動態載入字型。

1.1、使用**安裝字型

注意:安裝字型時,需要windows的管理員許可權。

[

dllimport

("kernel32.dll"

, setlasterror =

true)]

public

static

extern

intwriteprofilestring

(string lpszsection,

string lpszkeyname,

string lpszstring);[

dllimport

("gdi32")]

public

static

extern

intaddfontresource

(string lpfilename)

;///

/// 安裝字型

///

/// 字型檔案全路徑

/// 是否成功安裝字型

/// 不是管理員執行程式

/// 字型安裝失敗

public

static

bool

installfont

(string fontfilepath)

//獲取windows字型資料夾路徑

string fontpath=path.

combine

(system.environment.

getenvironmentvariable

("windir"),

"fonts"

,path.

getfilename

(fontfilepath));

//檢測系統是否已安裝該字型if(

!file.

exists

(fontpath))}

catch

(exception ex)

] 字型安裝失敗!原因:"))

;}return

true

;}

1.2、從專案資源檔案中載入字型

該方法需要開發者將字型檔案以資源的形式放入專案資源檔案中。不用安裝到字型庫中,其他程式如果需要使用,就需要自己安裝或者載入。此時可以使用以下**建立程式所需字型:

/// 

/// 如何使用資源檔案中的字型,無安裝無釋放

///

/// 資源檔案中的字型檔案

///

public

font

getresorucefont

(byte

bytes)

1.3、載入某個字型檔案,載入字型

設定好某個字型的路徑,然後載入字型檔案,從而建立字型。不用安裝到字型庫中,其他程式如果需要使用,就需要自己安裝或者載入。

/// 

/// 通過檔案獲取字型

///

/// 檔案全路徑

/// 字型

public

font

getfontbyfile

(string filepath)

1.4、檢測系統中是否包含某種字型

對於檢測是否已經安裝了某種字型的方法有很多,這裡只介紹檢測是否有該檔案的方式:

/// 

/// 檢查字型是否存在

///

/// 字型名稱

///

public

static

bool

checkfont

(string familyname)

1.5、檢測某種字型樣式是否可用

/// 

/// 檢測某種字型樣式是否可用

///

/// 字型名稱

/// 字型樣式

///

public

bool

checkfont

(string familyname,

fontstyle fontstyle= fontstyle.regular )

}return

false

;}

程式安裝字型或直接呼叫非註冊字型 c

1.安裝字型 程式直接將字型檔案安裝的系統中。函式宣告 ret addfontresource fontpath res sendmessage hwnd broadcast,wm fontchange,0,0 win7下編譯會出錯,不清楚什麼問題。注釋就行了。ret writeprofilestr...

字型怎麼安裝到vivo PS字型怎麼安裝?

字型安裝方法 2.然後進入字型安裝介面,貼上進去即可 字型安裝介面一般是在以下這幾個目錄 c windowsfonts 或c winntfonts 或開始選單 控制面板 字型.字型常見疑問 1.為什麼在安裝時會出現 檔案損壞 這個是因為字型檔與你的系統產生衝突 特別是xp系統,因為有很多字型以前都是...

fedora(linux) 安裝字型

我的是雙系統,windows的c盤掛載在 mnt c 以安裝以下4種字型為例 simfang.ttf 仿宋體 simhei.ttf 黑體 simkai.ttf 楷體 simsun.ttf 宋體和新宋體,原檔名simsun.ttc cd mnt c windows fonts cp sim ttf u...