• ベストアンサー

APIでフォントをインストール

コントロールパネルから新しいフォントをインストールする代わりに、VBのプログラムからインストールするAPIはないものでしょうか? いろいろ探してみたのですが、見つかりませんでした。 ご存知の方がいらっしゃいましたら教えていただけませんか? VBは6.0SP5、対象OSは98,NT,2000です。

質問者が選んだベストアンサー

  • ベストアンサー
noname#62349
noname#62349
回答No.1

まずどこにコピーするかパスを取得します。 ' Windowsディレクトリのパス名を取得する関数の宣言 Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _ (ByVal lpBuffer As String, _ ByVal nSize As Long) As Long 上記のAPIを使用してパスを指定し、外字をコピーします。 'ファイルコピー Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" _ (ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String, _ ByVal bFailIfExists As Long) As Long そのあとレジストリ登録をします。 ''レジストリのオープン Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _ (ByVal hKey As Long, _ ByVal lpSubKey As String, _ phkResult As Long) As Long ''レジストリキーの取得 Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _ (ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal lpReserved As Long, _ lpType As Long, _ lpData As Any, _ lpcbData As Long) As Long ''レジストリのクローズ Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long ''レジストリのキー作成 Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" _ (ByVal hKey As Long, _ ByVal lpSubKey As String, _ ByVal Reserved As Long, _ ByVal lpClass As String, _ ByVal dwOptions As Long, _ ByVal samDesired As Long, _ lpSecurityAttributes As SECURITY_ATTRIBUTES, _ phkResult As Long, _ lpdwDisposition As Long) As Long ''レジストリの値設定 Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _ (ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal Reserved As Long, _ ByVal dwType As Long, _ lpData As Any, _ ByVal cbData As Long) As Long かなりおおざっぱですけど これらを使えばVBで外字登録できます。 あとWindowsのバージョンに関する情報も取得しないと いけないかもしれません。

AnyBody
質問者

お礼

レジストリ操作が必要なんですね。 ちょっと試してみます。 ありがとうございました。

関連するQ&A