Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как изменить иконку для какого-либо диска в проводнике?


Alexander ©   (2002-06-09 01:39:00) 

?


Севостьянов Игорь   (2002-06-10 13:43:00) [1]

Небольшая поправка... Надо выставить значения бита в 0 для диска у которого должна быть обработана инфа из autorun.inf
Лучше выставить значение 0 - то есть обрабатывать для всех типов устройств


Севостьянов Игорь   (2002-06-10 13:13:00) [2]

Да это та, но есть одно но...
Насколько я смог разобраться все зависит от одного ключика в реестре... Вот статья http://support.microsoft.com/support/kb/articles/q136/2/14.asp
Так вот там говориться что в ключе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\"NoDriveTypeAutoRun"
содержиться бинарное значение для каких дисков отображать эту инфу из autorun.inf

Type Bit
DRIVE_UNKNOWN 0
DRIVE_NO_ROOT_DIR 1
DRIVE_REMOVABLE 2
DRIVE_FIXED 3
DRIVE_REMOTE 4
DRIVE_CDROM 5
DRIVE_RAMDISK 6


Стандарт значение 0x95 (149) это биты 0, 2, 4 and 7 are therefore set, which means that drive types DRIVE_UNKNOWN, DRIVE_REMOVEABLE, and DRIVE_REMOTE don"t use AutoPlay information (Bit 7 is set to cover future device types.)

Если поставить значение для 5 бита, то увидете, что для CD-ROM изменилась иконка (если авторан присутствовал)...
И еще надо послать мессагу WM_DEVICECHANGE, что изменилась кофигурация для Device - смотри:

The WM_DEVICECHANGE device message notifies an application of a change to the hardware configuration of a device or the computer.

A window receives this message through its WindowProc function.

LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_DEVICECHANGE
WPARAM wParam, // device-change event
LPARAM lParam // event-specific data
);


Вот такие дела - если я не прав... Докажите это...


Alexander   (2002-06-10 09:50:00) [3]

я так пробовал на Windows 2000 и Windows XP - не работает!


Dmitry Sheenok   (2002-06-10 04:43:00) [4]

создаёшь в корне диска autorun.inf:
[autorun]
icon=icon.ico


Наверх

Титульная страница Поиск, карта сайта Написать письмо