MVV

|
Posted: Fri Jul 02, 2010 21:50 Post subject: |
|
|
Вообще, вопрос сложный, так как ТК кэширует иконки. Но есть одна идея, которую ты заодно и проверишь.
Когда ТК вызывает функцию FsExtractCustomIcon/FsExtractCustomIconW плагина для получения иконки, он добавляет иконку в кэш, в котором иконки различаются по строке RemoteName (этот параметр в FsExtractCustomIcon является как входным, так и выходным). Если нужно одну и ту же иконку применить много раз, нужно указывать произвольную строку в поле RemoteName, но одинаковую для всех файлов с такой иконкой - при этом в кэш иконка будет помещена лишь один раз (например, если ставишь собственную иконку папки, а папок в панели несколько тысяч, в функции FsExtractCustomIcon для каждой папки возвращаешь одну и ту же иконку, а в RemoteName записываешь строчку "/").
Собственно, идея вот в чем. При обновлении панели, если ТК запросит иконки повторно, возвращаешь другую строку в RemoteName (например, генеришь случайное число, переводишь в строку и записываешь в это поле), чтобы дать ТК понять, что иконка уже другая. Возможно, это поможет установить измененную иконку.
А вообще, конечно, менять иконки и обновлять панель - не есть хороший вариант... _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Last edited by MVV on Fri Jul 02, 2010 21:55; edited 2 times in total |
|