Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Управління папками з фоновими малюнками робочого столу

  1. Як формується список фонових малюнків Windows 7 і Windows 8
  2. Як додати власні папки в групу зображень "Фони робочого столу Windows"
  3. Як задати доданої папці ім'я в діалозі вибору шпалер, відмінне від імені в файлової системі
  4. Як створити власну групу папок для вибору фонових зображень
  5. Як налаштувати порядок угруповання зображень відповідно до власних вподобань
  6. GROUPBY = System.ItemNameDisplay
  7. GROUPBY = System.ItemType
  8. GROUPBY = System.ItemDate
  9. Підводячи підсумок

Наша взаимовыгодная связь https://banwar.org/

Вам знаком ось такий діалог, чи не так?

Вам знаком ось такий діалог, чи не так

Користувачам Windows 7 і Windows 8 добре відома опція "Фони робочого столу Windows", що містить в собі малюнки з декількох папок, і впорядкована по імені папки, в якій лежать картинки. Учасник конференції Oszone перейнявся питанням, як додати в цей список власну групу папок, і як вплинути на порядок угруповання картинок. Ваш покірний слуга взявся відповісти - в кінці кінців, тут, на Winreview.ru, колись була стаття як раз про це. Спільнота висловила інтерес до теми і рекомендувало повернути статтю. Зараз я спробую усунути недоліки минулих років і відкрию читачеві "таємне знання", як каже мій колега Вадим Стеркиной .

Сьогодні в ефірі:

Якщо зацікавило - запрошую під капот Windows.


У процесі читання цієї статті вам, можливо, доведеться часто звертатися в різні розділи реєстру. Щоб прискорити цей процес і зробити його зручним, дізнайтеся, як можна виконати перехід в розділ реєстру одним клацанням мишки .

Як формується список фонових малюнків Windows 7 і Windows 8

Знаєте, що мені подобається в операційній системі Windows? Образно кажучи, в ній є гайки, які можна крутити, але гайки ці накриті кришкою "Обслуговується центрі обслуговування". Багато користувачів зараховують подібне як мінус Microsoft і загальної гнучкості системи, але насправді це правильний підхід: все необхідне для комфортної експлуатації ОС є під рукою, все інше пересічному користувачеві ні до чого. Весела картинка якраз на цю тему .

Наш випадок - це приклад якраз таких "гайок". Список папок, з яких формується список шпалер робочого столу, - динамічний. У яких папках шукати зображення, система дізнається за допомогою записів в системному реєстрі. Алгоритм наступний:

  • Система звертається до розділу
    [Code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders [/ code]
    Тут можуть бути підрозділи виду 0, 1,2, ..., N.
  • Розділи 0..N є безпосередньо елементи списку, які бачить користувач при виборі джерела шпалер робочого столу. Елемент "Фони робочого столу Windows" відповідає розділу
    [Code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 0 [/ code]
    Тут, в списку розділах 0..N може бути присутнім параметр Name, що задає ім'я, яке побачить користувач в випадаючому списку. За замовчуванням це посилання на строковий ресурс в DLL, файлі, але допускається використання і звичайної текстової рядки.
    Тут же може бути присутнім параметр GROUPBY, що відповідає за порядок угруповання зображень в діалозі вибору фону робочого столу. За замовчуванням він має значення System.ItemFolderNameDisplay і відповідає угрупованню по імені папки. Ми його розглянемо докладніше трохи пізніше.
  • У кожному з підрозділів 0..N повинен бути присутнім підрозділ з довільним ім'ям, призначення якого оповите мороком таємниці. Як можна бачити на малюнку вище, для стандартних шпалер він носить назву "Windows Wallpapers". Однак, зовсім точно відомо, що він повинен містити підрозділ MergeFolders. Це наріжний камінь всього механізму подання фонових малюнків в діалозі вибору шпалер робочого столу, саме тут задаються папки, в яких система буде шукати зображення. У загальному випадку шляху до цих папок задаються у вигляді імен параметрів (а не їх значень). Давайте подивимося на стандартні "Фони робочого столу":

    Система працює з іменами параметрів, будуючи список картинок з перерахованих в MergeFolders папках.
  • Якщо система не виявила розділу
    [Code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders
    [/ Code]
    То вона звертається до розділу
    [Code] HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders
    [/ Code]
    В цьому розділі порядок дій системи повністю повторюється.

Цікаві факти

  • Розділ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders має пріоритет над аналогічним розділом HKEY_LOCAL_MACHINE. Якщо був оброблений HKEY_CURRENT_USER, його брат-близнюк буде повністю проігноровано. Як виявилося, це поведінка проявилося одноразово тільки в Windows 8. Ймовірно, це був якийсь збій. Я ретельно вивчив питання, правильна поведінка систем Windows 7 і Windows 8 є таким:
    в діалозі вибору фонового малюнка з'являються зображення з елементів 0, 1, .. N, які прописані як в HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders, так і в такому ж розділі в HKEY_LOCAL_MACHINE.
    Наприклад, щодо стандартної опції "Фони робочого столу", при її виборі ви побачите в діалозі все картинки з папок, прописаних в розділі
    [Code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 0 [/ code]
    і в розділі
    [Code] HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 0 [/ code]
    Система об'єднує вміст папок, прописаних в KnownFolders-підрозділах в HKCU і HKLM з однаковими іменами, тобто KnownFolders \ 0, KnownFolders \ 1 і так далі.
  • Це очевидно, але все ж - розділ в HKEY_CURRENT_USER служить для завдання параметрів для поточного користувача, в той час як розділ в HKEY_LOCAL_MACHINE задає налаштування для тих користувачів, у яких параметри в HKEY_CURRENT_USER можуть взагалі бути відсутнім.
  • У Windows 8 в HKEY_CURRENT_USER взагалі немає ніяких записів щодо папок з шпалерами, а в Windows 7 тут прописані папки для регіональних тим, якщо випуск їх підтримує. Всі настройки в Windows 8 беруться з гілки HKEY_LOCAL_MACHINE, але при цьому, якщо створити розділ в HKEY_CURRENT_USER самостійно, він як і раніше буде коректно працювати!
    До слова, я всі свої вишукування виробляю на гілці HKCU, створеної в Windows 8.

Як додати власні папки в групу зображень "Фони робочого столу Windows"

Наверяка ви вже здогадалися, що для виконання цього завдання досить прописати власну папку в відповідних розділах:

  • якщо ви - користувач Windows 7, або ж створюєте параметри тільки для поточного користувача в Windows 8, то в розділі
    [Code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 0 \ Windows Wallpapers \ MergeFolders
    [/ Code]
  • якщо ви - користувач Windows 8, або ж керуєте загальносистемними настройками, то в розділі
    [Code] HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 0 \ Windows Wallpapers \ MergeFolders
    [/ Code]

Прописуючи в будь-який з цих систем що-небудь в розділі HKEY_LOCAL_MACHINE, варто зайвий раз переконатися, що розділ в HKEY_CURRENT_USER у вас дійсно відсутня. В іншому випадку нічого не вийде.

Порядок дій

  1. Закрийте діалог вибору фонового малюнка.
  2. Створіть новий параметр строкового типу у відповідному розділі MergeFolders, як ім'я задавши повний шлях до папки з вашими зображеннями. приклад:

    Примітка: якщо ви плануєте використовувати змінні оточення в шляху до шпалер (% USERPROFILE%, наприклад), згідно специфікації на параметри реєстру вам потрібно створити параметр не просто строкового типу, а Expandable String Value, REG_EXPAND_SZ. Будь ласка, дотримуйтесь вимог до типу параметрів, щоб уникнути непередбачених проблем з ОС.
  3. Відкрийте діалог вибору фонового малюнка. Результат не змусить себе чекати:

Як задати доданої папці ім'я в діалозі вибору шпалер, відмінне від імені в файлової системі

Уважний читач уже помітив, що тільки що додана папка C: \ Wallpapers відображається у мене в діалозі вище під ім'ям Wallpapers, тобто в точності так само, як вона називається на жорсткому диску. При цьому ми бачимо, що системні папки відображаються з довільними іменами! Чому?

Відповідь тут криється в системному файлі desktop.ini. При формуванні горезвісного діалогу Windows зчитує параметр [.ShellClassInfo] \ LocalizedResourceName з цього файлу, і використовує його в якості Імен папки з малюнками. Таким чином, якщо створити власний файл desktop.ini, можна визначити ім'я доданої папки в діалозі вибору фонового малюнка.

Як ви, ймовірно, можете знати, щоб система "звертала увагу" на файл desktop.ini, у папки, в якій він знаходиться, повинен бути встановлений або атрибут "Тільки читання", або "Системна". Я вважаю за краще використовувати атрибут "Тільки читання", і саме його я маю намір поставити папці з мого прикладу. Засобами інтерфейсу Провідника встановити цей атрибут для папки не вийде, і тут нам на допомогу прийде командний рядок. Команда виглядає наступним чином:

[Code] attrib + rc: \ wallpapers [/ code]
[Code] attrib + rc: \ wallpapers [/ code]

Тепер я створюю в папці c: \ wallpapers за допомогою звичайного Блокнота файл desktop.ini ось з таким вмістом:

[Code] [. ShellClassInfo]
LocalizedResourceName = Windows 7 Beta Wallpapers [/ code]

результат:

Тепер ми знаємо досить, щоб перейти до наступного пункту:

Як створити власну групу папок для вибору фонових зображень


Це простіше простого. Вам достатньо створити в реєстрі новий розділ в гілці HKEY_CURRENT_USER або HKEY_LOCAL_MACHINE виду (нагадаю, в рамках цієї статті я працюю з гілкою HKEY_CURRENT_USER) [code] HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ N + 1 [/ code]

Значення N визначається як максимальний вже наявний номер в назві розділ. Як приклад я створю нову групу в випадаючому списку "Мої шпалери", і додам туди дві папки. У мене N - це нуль, значить, я створюю розділ 1, в ньому створюю підрозділ My Wallpapers \ MergeFolders. Далі можна діяти відповідно до описаного вище, повторюючи для новоспеченого розділу всі параметри і ключі, розглянуті раніше. Нагадую, замість My Wallpapers може бути будь-яка інша, довільна рядок. Це ім'я нічим не регламентується. У мене вийде так:

[Code] Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1]
"Name" = "Мої шпалери"
"GROUPBY" = "System.ItemFolderNameDisplay"

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1 \ My Wallpapers]

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1 \ My Wallpapers \ MergeFolders]

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1 \ My Wallpapers \ MergeFolders]
"C: \\ wallpapers \\ win7" = ""
"C: \\ wallpapers \\ bing" = "" [/ code]

Зверніть увагу: значення за замовчуванням в розділі HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1 \ My Wallpapers \ MergeFolders має бути не просто порожнім - воно повинно бути не задано.
Зверніть увагу: значення за замовчуванням в розділі HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Wallpapers \ KnownFolders \ 1 \ My Wallpapers \ MergeFolders має бути не просто порожнім - воно повинно бути не задано

Просто після створення розділу не чіпайте параметр за замовчуванням. Якщо в нього ви внесете порожній рядок, ви спровокуєте систему рекурсивно вважати робочу папку аплету панелі управління, а це системна директорія Windows \ WinSxS.

Після створення розділу 1 я отримав ось такий набір опцій в діалозі вибору фонового малюнка:

Після створення розділу 1 я отримав ось такий набір опцій в діалозі вибору фонового малюнка:

Імена папок беруться з desktop.ini аналогічно тому, як я описав вище.

Окрему увагу мені б хотілося загострити на угрупованню зображень у вікні вибору фонового малюнка.

Як налаштувати порядок угруповання зображень відповідно до власних вподобань

Пам'ятайте статтю " Тонка настройка розширень файлів в Windows 7 "? Там я торкався такий аспект функціонування Провідника, як метадані, або як вони називаються в MSDN -. Параметр GROUPBY якраз і використовує ці властивості в якості правил угруповання зображень у вікні вибору фонового малюнка.

За замовчуванням GROUPBY має значення "System.ItemFolderNameDisplay", що буквально означає "псевдонім папки". Це ім'я може не відповідати реальному фізичній імені файлу, як ми з вами вже переконалися на прикладі з файлом desktop.ini.

Ви можете перевизначити порядок угруповання за своїм смаком, вибравши з великого переліку властивостей ті, що підходять саме вам. Я наведу кілька можливих варіантів для прикладу.

GROUPBY = System.ItemNameDisplay

Группііровка по псевдонімом файлу (тобто імені, яке може бути також перевизначити за допомогою desktop.ini):

GROUPBY = System.ItemType

Угруповання по типу файлу.

GROUPBY = System.ItemDate

Угруповання за датою файлу.

І так далі.

Підводячи підсумок

Я не знаходжу цієї інформації практичного застосування (і мені часом все одно, що там у мене на робочому столі, я рідко міняю стандартні шпалери). Це стало причиною, по якій стаття покинула "новий" Winreview.ru. Дослідження принципів функціонування цього діалогу було особисто для мене цікавим заняттям, як втім і будь-яке інше дослідження, пов'язане з недокументованими можливостями настройки операційної системи. Не завжди варто застосовувати подібний матеріал на практиці.
Учасники конференції Oszone спонукали мене повернути матеріал, запевняючи, що він знайде свого читача. Сподіваюся, що тебе, мій шановний читачу, я не розчарував, витративши твій час на прочитання цієї публікації.

Чому?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: