|
v7: Проверка на наличие установленного шрифта | ☑ | ||
---|---|---|---|---|
0
BLP
08.05.12
✎
02:02
|
Подскажите, пожалуйста,
можно ли как-то в модуле проверить в системе установку нужного шрифта, чтобы написать условие, типа Если Шрифт (Такой-то) имеется Тогда ИИИ=ССС ИНаче ИИИ=ТТТ КОнецЕсли |
|||
1
Злопчинский
08.05.12
✎
02:45
|
скриптами стопудово можно вытянуть из ОС.
также посмотри в торону формекса - там есть возможность получения шрифта |
|||
2
BLP
08.05.12
✎
02:48
|
спс, угу, юзаю формекс, надо глянуть, что там
|
|||
3
BLP
08.05.12
✎
13:15
|
все как всегда просто... используем ФС.СуществуетФайл()
|
|||
4
andrewks
08.05.12
✎
13:43
|
ну, как бы одно это не гарантирует.
ещё есть HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts |
|||
5
BLP
08.05.12
✎
14:19
|
ну, да... надо знать еще папку.... в висте это c:\windows\fonts
а где в других ОС - может и отличаться от этого пути А как использовать реестровый регистр? |
|||
6
BLP
08.05.12
✎
14:21
|
Моя проблема:
я использую астрологический шрифт, который для лиц мужескаго полу выводит значек Марса, для жен - венеру... если шрифт отсутствует в системе, то выводится какая-то буква обучного шрифта, что не айс :-)) поэтому и хотелось бы, чтобы если шрифт установлен, то марс или венера, а если нет, то муж или Жен )) |
|||
7
Voronve
08.05.12
✎
14:44
|
(6) В конфу (или в обработку, что там у тебя) добавить две небольшие картинки и их выводить не ?
|
|||
8
Злопчинский
08.05.12
✎
16:16
|
(3) автор не знаеит что наличие файла еще не значит что фонт установлен в системе
|
|||
9
BLP
08.05.12
✎
17:22
|
автор знает, конечно, ну, это как вариант для начала...
и в моем случае, если не будет установлен, то не будет при такой команде вылазить абракадабра, а будет - муж или жен... Поэтому и ищу более правильный способ |
|||
10
viktor_vv
08.05.12
✎
17:30
|
Это че, 1С уже и до астрологов, магов и чародеев добралась :)?
|
|||
11
andrewks
08.05.12
✎
17:32
|
(10) не, наоборот, они до неё добрались :)
|
|||
12
viktor_vv
08.05.12
✎
17:47
|
(11) Ну слава богу, наконец-то появится та самая волшебная кнопка ::).
|
|||
13
andrewks
08.05.12
✎
20:52
|
(12) сама кнопка появилась уже давно. просто она станет _реально работать_ )))
|
|||
14
Torquader
08.05.12
✎
20:54
|
Вообще-то,если хочется чего-то узнать о системе,то нужно через wmi спросить у неё - она всё подробно про себя расскажет.
|
|||
15
Vampire1402
09.05.12
✎
11:55
|
(5) c:\windows\fonts у висты, семерки и хорька одинаковы. Не думаю, что база будет юзаться на яблоке или линуксе. Проблема в основном здесь с разделом (буквой) установки оси - есть такие ... которые умудряются установить ось на D или E разделы. Но и это решаемо.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion В этой ветке есть ключ SystemRoot. Там написан путь системы. Дописали \fonts и получили путь шрифтов. А дальше, 1С++ есть? Работа с реестром через него. |
|||
16
Torquader
09.05.12
✎
12:21
|
(15) Переменная окружения windir или systemroot говорят, где живёт директория Windows - к ней нужно добавить только Fonts.
|
|||
17
Vampire1402
09.05.12
✎
13:28
|
(16) тоже вариант
|
|||
18
Torquader
09.05.12
✎
13:34
|
(17) Просто в реестре пути могут поменяться - скоро Windows 8 выйдет.
А вот переменные окружения как-то менять нехорошо, тем более, что они для того и созданы, чтобы процесс мог легко узнать, где находится системная директория без лишних обращений к системе. Насколько я помню, WScript.Shell позволяет заглянуть в переменные окружения. sh=CreateObject("WScript.Shell") Fonts=sh.ExpandEnvironmentStrings("%SYSTEMROOT%")+"\Fonts" |
|||
19
Vampire1402
09.05.12
✎
18:11
|
(18) ну на Windows 8 честно говоря не обращал внимания, да и не разглядывал ее пока еще. Хотя и не факт, что в Windows 8 шрифты лежат в "\Fonts".
|
|||
20
Vampire1402
09.05.12
✎
18:18
|
Может куда проще ФС.WindowsКаталог()
|
|||
21
Torquader
09.05.12
✎
18:21
|
(20) Можно, только даже наличие файла в указанной директории не гарантирует, что шрифт будет доступен.
P.S. а файл-то и переименовать можно. |
|||
22
Vampire1402
09.05.12
✎
18:32
|
(21) Так я про что в (15) и говорил: "А дальше, 1С++ есть? Работа с реестром через него."
|
|||
23
Torquader
09.05.12
✎
18:44
|
(22) В реестре тоже не факт, что все шрифты перечислены.
Есть кеш шрифтов - вот там должно быть всё. |
|||
24
Vampire1402
09.05.12
✎
18:59
|
(23) ну раз в реестре нет шрифта, разве он может быть зарегистрирован?
|
|||
25
Torquader
09.05.12
✎
19:02
|
Перебрать все шрифты позволяет GDI-функция EnumFontFamilies.
|
|||
26
Vampire1402
09.05.12
✎
19:05
|
(25) ну, это уже к автору
|
|||
27
Torquader
09.05.12
✎
19:21
|
(26) Просто эта функция действительно даёт ответ на то, какие шрифты установлены и будут доступны вашему приложению. Как известно, 1С 7.7 - не Unicode приложение, и часть шрифтов может работать не так, как надо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |