トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

Windows でフォントをインストールせずに使う

Font Load-Unload

http://www.gigafree.net/system/install/fontloadunload.html
http://www7.ocn.ne.jp/~otoku/free-s-file-31.htm

Font Load-Unload を使えば、インストールせずにフォントのロード、アンロードができる。

自作する

コマンドラインでロード、アンロードしたいとか、自作したい場合は

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
#include <wingdi.h>

int main(int argn, char *args[]){
  if (argn < 2){
    printf("loadFont.exe (add or remove) font\n");
    return;
  }
  
  int result = 0;
  if (strcmp(args[1], "add") == 0){
    result = AddFontResource(args[2]);
    // result = AddFontResourceEx("Consolas_IPAG5_2.ttf", FR_PRIVATE, NULL);
  } else if (strcmp(args[1], "remove") == 0) {
    result = RemoveFontResource(args[2]);
    // result = RemoveFontResourceEx("Consolas_IPAG5_2.ttf", FR_PRIVATE, NULL);
  } else {
    printf("loadFont.exe (add or remove) font\n");
    return;
  }
  
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  printf("edit font %d\n",result);
}

みたいな感じ。
コンパイルは

gcc loadFont.c -mno-cygwin -lgdi32

とか

gcc loadFont.c -D_WIN32_WINNT=0x0500 -mno-cygwin -lgdi32

AddFontResource
RemoveFontResource

で、フォントのロードとアンロードをする。

SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);

で他のアプリケーションへ通知する。
一時的にロードするだけなので、Windowsにインストール等はしない。
(Windowsを再起動すると、フォントがリストから無くなっている)

loadFont.exe(452)

[カテゴリ: OS > Windows]
[カテゴリ: プログラミング言語 > C]

[通知用URL]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2012年09月08日 11時33分48秒