まあ、私はそれを「難しい方法」でやりましたが、うまくいきます。これが私のコードです:
String fontRegKey;
if (Util.isWindows9X())
{ fontRegKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Fonts"; }
else
{ fontRegKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"; }
String [] fontFilesNames = new String[]
{"braille_tbfr2007_b-2.ttf","BrailleTBFr2007INSHEAb_thermo.ttf","LouisLouis.ttf","LouisLouisThermo.ttf"};
String [] fontNames = new String[]
{"Braille TBFr2007 INS HEA (TrueType)","Braille TBFr2007 INS HEA thermo (TrueType)",
"LouisLouis Braille (TrueType)","LouisLouis Braille Thermo (TrueType)"};
for (int i=0 ; i<fontNames.length ; i++)
{
boolean write = WinRegistry.setValue(RegistryRoot.HKEY_LOCAL_MACHINE, fontRegKey,fontNames[i], fontFilesNames[i]);
}
if (Util.isAtLeastWindowsXP()) //security : delete system font cache
{
File sd = WinFileSystem.getSystemDirectory();
File f = new File (sd.getAbsoluteFile()+"\\FNTCACHE.dat") ;
if (f.exists()) {f.delete();}
}
return true; //mandatory for the script
最後に 3 つのこと:
これはスクリプトであり、インストーラーの[完了] 画面に配置したスクリプトの実行アクションです。
他のシステムではインストーラーがクラッシュするため、このスクリプトは必ず Windows 環境でのみ実行してください。
これはWinXPでは不要のようですが、Win7ではインストール後にフォント リストでフォントにアクセスできるようにするために不可欠です。