Я наверно уже всех достал своим Clear Type, но эт мне очень нужно!.. Тут попробовал отследить одну прогу, которая это реально меняет и нашол запись в файл:
SET INFORMATION Documents and SettingsNeo
tuser.dat.LOG SUCCESS Length: 16384
Эт типа она лезит в этот ntuser.dat.LOG и что-то там дописует. Я проверил - файл постоянно занят системой и его размер постоянно меняется... По ходу это и есть кеш шрифтов, ток как до него добраться и заставить винду перечитать все настройки из реестра для шрифта?.. Может кто чё подскажет?..
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
|
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Neo, ntuser.dat - это твой профиль в системе (по сути - кусок реестра), естетсвенно в нём хранится и информация о шрифтах и об их сглаживании.
|
|||
карма: 1 |
|
Ответов: 704
Рейтинг: 7
|
|||
iarspider писал(а): Neo, ntuser.dat - это твой профиль в системе (по сути - кусок реестра), естетсвенно в нём хранится и информация о шрифтах и об их сглаживании.А как с ним работать? Как найти эти строки для обновления шрифта и заставить обновиться?.. [size=-2]------ Добавлено в 22:28 Или заставить его перезаписаться при работающей системе?.. Можно такое? |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
С реестром никогда не работал что-ли? Что-нибудь типа Software/Microsoft/Windows/CurrentVersion/... В конце-концов поищи поиском в regedit имя файла шрифта. После изменений надо всем послать WM_SETTINGCHANGE, и кстати в lparam желательно путь к изменённым ключам указывать.
|
|||
карма: 1 |
|
Ответов: 704
Рейтинг: 7
|
|||
tsdima писал(а): С реестром никогда не работал что-ли? Что-нибудь типа Software/Microsoft/Windows/CurrentVersion/... В конце-концов поищи поиском в regedit имя файла шрифта. После изменений надо всем послать WM_SETTINGCHANGE, и кстати в lparam желательно путь к изменённым ключам указывать.code_623 [size=-2]------ Добавлено в 23:07 Я наверно в чём-то туплю, но оно ЖЕ НЕ РАБОТАЕТ! [size=-2]------ Добавлено в 23:08 Тту может что-то с компонетом для посылки сообщений: у меня при выборе сообщения вот такое в редакторе "$1A{WM_SETTINGCHANGE}" |
|||
карма: 0 |
| ||
файлы: 1 | code_623.txt [826B] [227] |
Ответов: 704
Рейтинг: 7
|
|||
tsdima писал(а): С реестром никогда не работал что-ли? Что-нибудь типа Software/Microsoft/Windows/CurrentVersion/... В конце-концов поищи поиском в regedit имя файла шрифта. После изменений надо всем послать WM_SETTINGCHANGE, и кстати в lparam желательно путь к изменённым ключам указывать.Да и Lparam принимает же только числовые значения... как4 туда вписать что-то типа:"HKEY_CURRENT_USERControl PanelDesktopFontSmoothingGamma"??? |
|||
карма: 0 |
|
Ответов: 704
Рейтинг: 7
|
|||
Блин... глюки уже или чё-т не пойму... Моя прога тоже дописует этот Ntuser.dat как и другие, но мгновенного результата в отображении шрифтов нету... :-(
|
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Neo писал(а): Да и Lparam принимает же только числовые значения... как4 туда вписать что-то типа:"HKEY_CURRENT_USERControl PanelDesktopFontSmoothingGamma"???Neo, тебе давали ссылки http://hiasm.hexshock.com/xf/topic.php?p=35919#P35919 |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
как4 туда вписать что-то типа:"HKEY_CURRENT_USER\Control Panel\Desktop\FontSmoothingGamma Ну, во-первых, в lparam передаётся в таких случаях адрес строки (указатель на первый символ). А во-вторых, строку надо наверное до HKEY_CURRENT_USER\Control Panel\Desktop сократить, кто его знает с чем ехплорер сравнивает, наверняка не с именем каждого параметра. И в-третьих, не факт, что нужно писать HKEY_CURRENT_USER\..., а не что-то другое. Например в HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows NT\CurrentVersion\IniFileMapping значение DeskTop равно #USR:Control Panel\Desktop, то есть вместо HKEY_CURRENT_USER нужно писать USR или #USR. Но насколько я понимаю, раз есть такой маппинг, можно посылать адрес строки "DeskTop" Например вот так в InlineCode
|
|||
карма: 1 |
|
Ответов: 704
Рейтинг: 7
|
|||
Например вот так в InlineCode
|
|||
карма: 0 |
|
Ответов: 704
Рейтинг: 7
|
|||
tsdima, без тебя НЕ ОБОЙДУСЬ!!! Помоги, ПЛИЗ!!!
|
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
1000 это таймаут ожидания (1 сек), в случае если приложение не реагирует на SendMessage (не обрабатывает очередь сообщений в течение 1 сек). В примере в MSDN стоит вообще 5 сек.
Я посмотрел, что посылает само окно настройки в панели управления, никакого адреса нет, т.е. можно ноль посылать: code_628 Главное найти правильный ключик в реестре |
|||
карма: 1 |
| ||
файлы: 1 | code_628.txt [611B] [307] |
Ответов: 704
Рейтинг: 7
|
|||
tsdima писал(а): 1000 это таймаут ожидания (1 сек), в случае если приложение не реагирует на SendMessage (не обрабатывает очередь сообщений в течение 1 сек). В примере в MSDN стоит вообще 5 сек.
Я посмотрел, что посылает само окно настройки в панели управления, никакого адреса нет, т.е. можно ноль посылать: code_628 Главное найти правильный ключик в реестре Вставил, а толку нету... Ключи те же , что и в проге от майкрософта, а меняется только после перезагрузки... |
|||
карма: 0 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Ну что-ж, тады только через
|
|||
карма: 1 |
|
Ответов: 704
Рейтинг: 7
|
|||
tsdima писал(а): Ну что-ж, тады только через
|
|||
карма: 0 |
|
15