Проблема:
Необходимо отображать рисунок при открытии какой-либо папки. Так же нужно отображать свою подсказку при наведении мышки на папку.
Решение для OS ниже MS Windows Vista:
Создаем или редактируем уже имеющийся в этой папке скрытый файл desktop.ini.
Код: Выделить всё
[.ShellClassInfo]
ConfirmFileOp=0
InfoTip="Эта папка предназначена для..."
[ExtShellFolderViews]
{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
{5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
Attributes=1
IconArea_Image=..\Logo.bmp
Здесь в "InfoTip" - задается строка подсказки, отображаемая при наведении мышки на паку, а в "IconArea_Image" задается путь и имя файла bmp или jpg, содержащего картинку, которую необходимо показывать при открытии папки (в данном случае, это файл "Logo.bmp" в корне родительской папки).
О дополнительных параметрах файла desktop.ini читаем здесь.
После того, как мы сохранили модифицированный desktop.ini, необходимо установить аттрибуты "Архивный" и "Только чтение" для нашей папки:
Код: Выделить всё
Attrib +A +R C:\MyFolder
Решение для OS MS Windows Vista, Windows 7 и последующих версий:
Конечно, существует множество твикеров, позволяющих делать это автоматически (например, бесплатная утилита Windows 7 Folder Background Changer)
Однако, интерес представляет РУЧНОЙ способ настройки Windows. В отличие от предыдущих версий, в MS Windows Vista и более поздних, не предусмотрено отображение картинок в качестве фона папок. Чтобы включить такую опцию, нам потребуется дополнительная динамическая библиотека (dll) и изменение в реестре:
-
Копируем FolderBackground_x86.dll для 32-х битной системы
или FolderBackground_x64.dll для 64-х битной системы
в папку %SystemRoot%\System32 под именем FolderBackground.dll:
Код: Выделить всё
copy /Y FolderBackground_x86.dll "%WINDIR%\System32\FolderBackground.dll"
или
Код: Выделить всё
copy /Y FolderBackground_x64.dll "%WINDIR%\System32\FolderBackground.dll"
-
Регистрируем скопированную библиотеку:
Код: Выделить всё
regsvr32.exe /s "%SystemRoot%\System32\FolderBackground.dll"
-
Импортируем файл реестра:
Код: Выделить всё
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] "{73526E5A-FD53-4BE7-B5E2-D3C89D7413DC}"="Ave's FolderBg" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\SharedTaskScheduler] "{73526E5A-FD53-4BE7-B5E2-D3C89D7413DC}"="Ave's FolderBg" [-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags] [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell] "KnownFolderDerivedFolderType"="{57807898-8C4F-4462-BB63-71042380B109}" "SniffedFolderType"="Generic" "FolderType"="" ;Generic - Folder Template [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}] "Rev"=dword:00000000 "FFlags"=dword:43000001 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}" "Mode"=dword:00000004 "LogicalViewMode"=dword:00000001 "IconSize"=dword:00000010 "ColInfo"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,fd,df,df,fd,10, 00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,18,00,00,00,30,f1,25,b7,ef,47, 1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,10,01,00,00,30,f1,25,b7,ef,47,1a, 10,a5,f1,02,60,8c,9e,eb,ac,0e,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10, a5,f1,02,60,8c,9e,eb,ac,04,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10,a5, f1,02,60,8c,9e,eb,ac,0c,00,00,00,50,00,00,00 "Sort"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,30,f1, 25,b7,ef,47,1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,01,00,00,00 "GroupView"=dword:00000000 "GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}" "GroupByKey:PID"=dword:00000000 "GroupByDirection"=dword:00000001 ;Documents - Folder Template [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{7d49d726-3c21-4f05-99aa-fdc2c9474656}] "Rev"=dword:00000000 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}" "Mode"=dword:00000004 "LogicalViewMode"=dword:00000001 "IconSize"=dword:00000010 "ColInfo"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,fd,df,df,fd,10, 00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,18,00,00,00,30,f1,25,b7,ef,47, 1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,10,01,00,00,30,f1,25,b7,ef,47,1a, 10,a5,f1,02,60,8c,9e,eb,ac,0e,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10, a5,f1,02,60,8c,9e,eb,ac,04,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10,a5, f1,02,60,8c,9e,eb,ac,0c,00,00,00,50,00,00,00 "Sort"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,30,f1, 25,b7,ef,47,1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,01,00,00,00 "GroupView"=dword:00000000 "GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}" "GroupByKey:PID"=dword:00000000 "GroupByDirection"=dword:00000001 "FFlags"=dword:43000001 ;Music - Folder Template [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{94d6ddcc-4a68-4175-a374-bd584a510b78}] "Rev"=dword:00000000 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}" "Mode"=dword:00000004 "LogicalViewMode"=dword:00000001 "IconSize"=dword:00000010 "ColInfo"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,fd,df,df,fd,10, 00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,18,00,00,00,30,f1,25,b7,ef,47, 1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,10,01,00,00,30,f1,25,b7,ef,47,1a, 10,a5,f1,02,60,8c,9e,eb,ac,0e,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10, a5,f1,02,60,8c,9e,eb,ac,04,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10,a5, f1,02,60,8c,9e,eb,ac,0c,00,00,00,50,00,00,00 "Sort"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,30,f1, 25,b7,ef,47,1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,01,00,00,00 "GroupView"=dword:00000000 "GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}" "GroupByKey:PID"=dword:00000000 "GroupByDirection"=dword:00000001 "FFlags"=dword:43000001 ;Pictures - Folder Template [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{b3690e58-e961-423b-b687-386ebfd83239}] "Rev"=dword:00000000 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}" "Mode"=dword:00000004 "LogicalViewMode"=dword:00000001 "IconSize"=dword:00000010 "ColInfo"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,fd,df,df,fd,10, 00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,18,00,00,00,30,f1,25,b7,ef,47, 1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,10,01,00,00,30,f1,25,b7,ef,47,1a, 10,a5,f1,02,60,8c,9e,eb,ac,0e,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10, a5,f1,02,60,8c,9e,eb,ac,04,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10,a5, f1,02,60,8c,9e,eb,ac,0c,00,00,00,50,00,00,00 "Sort"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,30,f1, 25,b7,ef,47,1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,01,00,00,00 "GroupView"=dword:00000000 "GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}" "GroupByKey:PID"=dword:00000000 "GroupByDirection"=dword:00000001 "FFlags"=dword:43000001 ;Videos - Folder Template [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5fa96407-7e77-483c-ac93-691d05850de8}] "Rev"=dword:00000000 "Vid"="{137E7700-3573-11CF-AE69-08002B2E1262}" "Mode"=dword:00000004 "LogicalViewMode"=dword:00000001 "IconSize"=dword:00000010 "ColInfo"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,fd,df,df,fd,10, 00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,18,00,00,00,30,f1,25,b7,ef,47, 1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,10,01,00,00,30,f1,25,b7,ef,47,1a, 10,a5,f1,02,60,8c,9e,eb,ac,0e,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10, a5,f1,02,60,8c,9e,eb,ac,04,00,00,00,78,00,00,00,30,f1,25,b7,ef,47,1a,10,a5, f1,02,60,8c,9e,eb,ac,0c,00,00,00,50,00,00,00 "Sort"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,30,f1, 25,b7,ef,47,1a,10,a5,f1,02,60,8c,9e,eb,ac,0a,00,00,00,01,00,00,00 "GroupView"=dword:00000000 "GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}" "GroupByKey:PID"=dword:00000000 "GroupByDirection"=dword:00000001 "FFlags"=dword:43000001
-
Перезапускаем Explorer (либо совершаем Выход - Вход в Windows)
-
Заходим в свойства папки, на которую хотим установить фоновый рисунок, идем на вкладку «Folder Background»:
-
Устанавливаем требуемые параметры:
-
Set Image - Выбираем рисунок для фона папки
-
Remove Image - Удаляем фоновый рисунок выбранной папки
-
Text color - Выбираем цвет текста для папки
-
Shadow the text - Отмечаем, если хотим видеть тень текста (только при просмотре в виде иконок)
-
Apply to sub folders also - Отмечаем, если выбранные параметры нужно применить для вложенных папок
-
-
Сохраняем выбранные параметры и наслаждаемся видом фонового рисунка
Примечания:
-
В результате вышеприведенных манипуляций, в папке с фоновым рисунком создается файлик desktop.ini со следующим содержанием:
Код: Выделить всё
[AveFolder] IconArea_Image=C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg ShadowedText=0 Recursive=1 TextR=0 TextG=0 TextB=0
здесь:
-
IconArea_Image - Полный (или относительный) путь к файлу фоновой картинки
-
ShadowedText - Тень текста
-
Recursive - Применение для вложенных папок
-
TextR, TextG, TextB - Цвет текста RGB
То есть те самые параметры, которые мы устанавливали на вкладке «Folder Background»
-
-
Если файлик desktop.ini удалить из папки, то все настройки для этой папки сбросятся.
-
Если нам необходимо отображать фоновый рисунок для OS MS Windows 7 и для MS Windows XP одновременно, то необходимо в файле desktop.ini прописать параметры и для Windows XP и для Windows 7 (это же справедливо для всех прочих ОС в сочетании пред-Vista и Vista и выше версий), например:
Код: Выделить всё
[.ShellClassInfo] ConfirmFileOp=0 InfoTip="Эта папка предназначена для временного хранения файлов. Файлы с датой старше 20 суток удаляются автоматически" [ExtShellFolderViews] {BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC} {5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262} [{BE098140-A513-11D0-A3A4-00C04FD706EC}] Attributes=1 IconArea_Image=..\TempLogo.bmp [AveFolder] IconArea_Image=..\TempLogo.bmp ShadowedText=1 Recursive=1 TextR=0 TextG=0 TextB=0
Здесь все параметры выше строки «[AveFolder]» относятся к ОС предшествующим Windows Vista, а строки [AveFolder] и ниже - к ОС Windows Vista и более поздним версиям.
-
Для удаления расширения «Folder Background» необходимо:
-
Отменить регистрацию библиотеки FolderBackground.dll
Код: Выделить всё
regsvr32 /s /u "%SystemRoot%\System32\FolderBackground.dll"
-
Удалить саму библиотеку из папки %SystemRoot%\System32
Код: Выделить всё
del "%SystemRoot%\System32\FolderBackground.dll" /Q
-
Удалить из реестра записи, внесенные при установке «Folder Background»
Код: Выделить всё
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved] "{73526E5A-FD53-4BE7-B5E2-D3C89D7413DC}"=- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\SharedTaskScheduler] "{73526E5A-FD53-4BE7-B5E2-D3C89D7413DC}"=- [-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags]
-
-
Для автоматизации процесса установки/удаления «Folder Background» существует сборка, взятая отсюда: