Как в Windows установить новый шрифт с помощью функций API?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Алексей Смирнов
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 11.01.2004 (Вс) 8:47
Откуда: Краснодарский край, г. Кореновск

Как в Windows установить новый шрифт с помощью функций API?

Сообщение Алексей Смирнов » 22.01.2004 (Чт) 15:18

Как в Windows установить новый шрифт с помощью функций API?
С уважением, Алексей.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

AddFontResource

Сообщение hCORe » 22.01.2004 (Чт) 15:21

Используй APIшку AddFontResource:

Код: Выделить всё
Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long

Private Sub Command1_Click()
On Error Resume Next
    Dim lResult as Long
    lResult = AddFontResource ("путь к файлу шрифта")
End Sub
Моду создают модоки, а распространяют модозвоны.

Алексей Смирнов
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 11.01.2004 (Вс) 8:47
Откуда: Краснодарский край, г. Кореновск

Как в Windows установить новый шрифт с помощью функций API?

Сообщение Алексей Смирнов » 22.01.2004 (Чт) 15:36

Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long

Private Sub Command1_Click()
On Error Resume Next
Dim lResult as Long
lResult = AddFontResource ("путь к файлу шрифта")
End Sub

Спасибо, я это попробую.
А как теперь узнать, что шрифт установлен (чтобы два раза не установить один).
С уважением, Алексей.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 22.01.2004 (Чт) 16:12

А я так мыслю, что ты это автоматом узнаешь - функция нверняка тебе ошибку в этом случае вернет.

Алексей Смирнов
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 11.01.2004 (Вс) 8:47
Откуда: Краснодарский край, г. Кореновск

Как установить шрифт с помощью API

Сообщение Алексей Смирнов » 22.01.2004 (Чт) 18:41

Нет, всегда возаращает 1
Но я нашёл функцию RemoveFontResource.
При запуске программы сначала удаляю шрифт, затем заного ставлю. Быстродействие это не снижает.
Выяснил:
1) функция AddFontResource прописывает шрифт несколько раз, поэтому столько раз его надо и удалить;
2) функция RemoveFontResource возвращает 0, если копий шрифтов больше не установлено и возвращает 1, если шрифт был установлен;
3) установленный с помощью AddFontResource шрифт не отображается в папке "ПАНЕЛЬ УПРАВЛЕНИЯ"->"ШРИФТЫ", даже если его перед установкой туда скопировать.

Тем не менее всё нормально работает, я уже задействовал это в своём проекте. Очень благодарен за помошь!
С уважением, Алексей.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 102

    TopList