teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

注意事項を追加

2017/07/06 01:46

投稿

PorkCutlet
PorkCutlet

スコア26

answer CHANGED
@@ -33,5 +33,7 @@
33
33
  Private Shared Function InstallFontFile(hwnd As IntPtr, path As String, flags As Integer) As Integer
34
34
  End Function
35
35
  '実行
36
- InstallFontFile(IntPtr.Zero, "D:\Hoge.ttf", 0)
36
+ InstallFontFile(IntPtr.Zero, ここにパスを入れる, 0)
37
- ```
37
+ ```
38
+ なお、InstallFontFileにはファイルをコピーする機能は無いようです。(flagsに何か渡せばやってくれるかもしれませんが)
39
+ そのためInstallFontFileの第2引数に渡すパスは、Fontsフォルダにコピーしたファイルのパスを渡してください。

4

非公開APIを見つけたので記載

2017/07/06 01:46

投稿

PorkCutlet
PorkCutlet

スコア26

answer CHANGED
@@ -25,8 +25,13 @@
25
25
 
26
26
  ダメならAPIのEnumFontFamiliesExを呼ぶとか?(すごくめんどそうなAPIですが)
27
27
 
28
- 取得ではなく、インストールであれば
28
+ 取得ではなく、インストールであれば非公開APIですが以下のような手もあります。(外道)
29
- Font Installation and Deletion
30
- https://msdn.microsoft.com/en-us/library/windows/desktop/dd144833(v=vs.85).aspx
31
29
 
30
+ ```VB
31
+ '宣言
32
+ <DllImport("fontext.dll", CharSet:=CharSet.Auto)> _
33
+ Private Shared Function InstallFontFile(hwnd As IntPtr, path As String, flags As Integer) As Integer
34
+ End Function
35
+ '実行
32
- にあるようにfontsフォルダにコピーしたあと、APIを呼んでみるのはどうでしょう?
36
+ InstallFontFile(IntPtr.Zero, "D:\Hoge.ttf", 0)
37
+ ```

3

fontインストール方法らしきものを記載

2017/07/06 01:37

投稿

PorkCutlet
PorkCutlet

スコア26

answer CHANGED
@@ -23,4 +23,10 @@
23
23
 
24
24
 
25
25
 
26
- ダメならAPIのEnumFontFamiliesExを呼ぶとか?(すごくめんどそうなAPIですが)
26
+ ダメならAPIのEnumFontFamiliesExを呼ぶとか?(すごくめんどそうなAPIですが)
27
+
28
+ 取得ではなく、インストールであれば
29
+ Font Installation and Deletion
30
+ https://msdn.microsoft.com/en-us/library/windows/desktop/dd144833(v=vs.85).aspx
31
+
32
+ にあるようにfontsフォルダにコピーしたあと、APIを呼んでみるのはどうでしょう?

2

APIについての追記

2017/07/05 10:18

投稿

PorkCutlet
PorkCutlet

スコア26

answer CHANGED
@@ -1,14 +1,15 @@
1
+ ```VB
2
+ For Each mily In FontFamily.Families
3
+ Console.WriteLine(family.Name)
4
+ Next
5
+ ```
6
+
1
7
  ```C#
2
8
  foreach(var family in FontFamily.Families) {
3
9
  Console.WriteLine( family.Name );
4
10
  }
5
11
  ```
6
12
 
7
- ```VB.NET
8
- For Each family In FontFamily.Families
9
- Console.WriteLine(family.Name)
10
- Next
11
- ```
12
13
 
13
14
  で、フォント名が以下のようにずらずら~っと出るんですが、これではだめ?
14
15
  Agency FB
@@ -20,4 +21,6 @@
20
21
  Arial Unicode MS
21
22
 
22
23
 
23
-
24
+
25
+
26
+ ダメならAPIのEnumFontFamiliesExを呼ぶとか?(すごくめんどそうなAPIですが)

1

VB\.NETのコードを追記

2017/07/05 09:19

投稿

PorkCutlet
PorkCutlet

スコア26

answer CHANGED
@@ -3,6 +3,13 @@
3
3
  Console.WriteLine( family.Name );
4
4
  }
5
5
  ```
6
+
7
+ ```VB.NET
8
+ For Each family In FontFamily.Families
9
+ Console.WriteLine(family.Name)
10
+ Next
11
+ ```
12
+
6
13
  で、フォント名が以下のようにずらずら~っと出るんですが、これではだめ?
7
14
  Agency FB
8
15
  Algerian