![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Не могу получить иконку рабочего стола (синий прямоугольник с карандашом)...
Пробовал через SHGetSpecialFolderLocation и SHGetSpecialFolderPath ни чиего не меняется Пробовал передавать в SHGetFileInfo атрибуты в место 0 с помощью desktop.GetAttributesOf(0, PIDL, Flags); эффекта 0 Если в SHGetFileInfo указать конкретный SH объект, то вторая иконка будет ассоциативной с ним т.е. SHGetFileInfo(PChar('c:\1.txt')............ покажет ассоциативную иконку с *.тхт Не понятно почему возникает артефакт в виде появления второго итема в ListBox-е с ассоциированной иконкой Результат и желание в аттаче... Это сообщение отредактировал(а) ~FoX~ - 1.12.2009, 18:20 Присоединённый файл ( Кол-во скачиваний: 33 )
desktop.JPG 10,78 Kb |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Проблема в получении системного имаджлиста, а не иконки рабочего стола
В листе всего 5 иконок... Добавлено через 5 минут и 12 секунд У меня ни один код из DRKB не заработал - все выдают лист из 5 элементов. |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Snowy, Да это понятное дело...
Не понятно по чему, описание десктопа в пространстве имен как и у любого объекта, только он является корнем, может у него где в реестре это хранится? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
попробуй так:
Опробовано на XP SP2 и Vista Home Prem. Это сообщение отредактировал(а) kami - 1.12.2009, 21:10 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
А они и не выдадут больше, пока об этом не попросишь систему, указав нужное расширение и SHGFI_SYSICONINDEX Упс... не посмотрел, что иконки нужны в ListView... но в любом случае - после запроса иконки она появится в ImageList с индексом FileInfo.iIcon Это сообщение отредактировал(а) kami - 1.12.2009, 21:30 |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
kami, Дякую, но не наши методы... desklink - ассоциирован с десктопом, но это не решение...
|
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Да не вопрос - переделываем чуть-чуть код:
|
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Получаю иконку папки
И кстати что такое SHGFI_ADDOVERLAYS ? Это сообщение отредактировал(а) ~FoX~ - 1.12.2009, 22:02 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Мда...
тот вариант не прокатил - на Висте нормально, в XP не то... Зато вот так работает и там и там, и заморочек гораздо меньше:
Это сообщение отредактировал(а) kami - 1.12.2009, 22:38 |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
kami, Понял в чем я накололся....
отвлечение от темы: CoTaskMemFree(PIDL); Это что? Это освобождение Memloc? Это сообщение отредактировал(а) ~FoX~ - 1.12.2009, 23:11 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
MSDN
Читать про параметр ppidl Объявлена в ActiveX.pas Добавлено через 3 минуты и 17 секунд Все же MSDN говорит, что лучше воспользоваться SHGetFolderLocation, но там для освобождения PIDL требуется вызов ILFree, а она в D7 не объявлена, самому объявлять чуть-чуть лень Добавлено через 5 минут и 40 секунд procedure ILFree(pidl:PItemIDList); stdcall; external 'shell32.dll' вроде так... |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
||||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |