Этот материал написан посетителем сайта, и за него начислено вознаграждение.
Предположим, Вы приобрели новый компьютер с предустановленной ОС Windows. После загрузки системы и входа в профиль пользователя Вас приветствует Рабочий стол с несколькими иконками и полоска Панели Задач в нижней части экрана — там тоже несколько иконок. После настройки Интернета Вы начинаете скачивать программки — большие и маленькие. После запуска инсталляторов для каждой из них на Рабочем столе (а иногда и на Панели Быстрого запуска) появляются новые ярлычки. Вы начинаете работать с программами, и, возможно, часть созданных документов сохраняете на Рабочий стол.
На Рабочем столе становится всё больше и больше иконок, и уже глаза начинают разбегаться.
При сильной захламленности Рабочего стола Вас подстерегает ещё одна неприятность. Для создания нового документа нужно активировать ярлык приложения, а для изменения документа нужно дважды кликнуть по иконке документа. Но ярлыки приложений и иконки документов на Рабочем столе перемешаны, и поиск нужного объекта требует некоторого напряжения. Можно, конечно, перетащить все ярлыки приложений в левую (правую, верхнюю или нижнюю) часть Рабочего стола, но не факт, что при очередной перезагрузке этот порядок сохранится.
рекомендации
3070 Gigabyte Gaming за 50 тр с началом
Выбираем игровой ноут: на что смотреть, на чем сэкономить
3070 Gainward Phantom дешевле 50 тр
13700K дешевле 40 тр в Регарде
Ищем PHP-программиста для апгрейда конфы
3070 дешевле 50 тр в Ситилинке
MSI 3050 за 25 тр в Ситилинке
3060 Gigabyte Gaming за 30 тр с началом
13600K дешевле 30 тр в Регарде
4080 почти за 100тр — дешевле чем по курсу 60
12900K за 40тр с началом в Ситилинке
RTX 4090 за 140 тр в Регарде
Компьютеры от 10 тр в Ситилинке
3060 Ti Gigabyte за 42 тр в Регарде
Положение усугубляется тем, что текст подписей под значками усекается, и не всегда понятно, какой документ где находится — ведь у документов могут быть одинаковые иконки и часть имени может совпадать.
Рассмотрим типовые решения проблемы нехватки места на Рабочем столе.
Можно всегда сохранять документы в библиотеку «Документы», раскладывая их по папкам, или периодически перемещать туда документы с Рабочего стола.
Можно поступить более радикально — удалить часть объектов в корзину.
Можно так же добавлять ярлыки приложений на Панель Быстрого запуска (в Windows 10 она срослась в единое целое с Панелью Задач). Постепенно там тоже накапливается приличное количество иконок. Иконки начинают занимать несколько рядов, и рабочее пространство для окон приложений сокращается.
Как временное решение, с помощью контекстного меню Рабочего стола можно изменить размер значков с обычных на маленькие.
Ещё можно купить монитор большего размера или расширить Рабочий стол на несколько мониторов … .
Это, пожалуй, все варианты, которые предлагает ОС.
Что могло бы облегчить работу на компьютере в данной ситуации?
Если бы на Рабочем столе была полоса прокрутки, то часть иконок можно было бы поместить в невидимую область экрана.
Или, скажем, если бы ОС предоставляла возможность иметь в своём распоряжении несколько полноценных Рабочих столов, то можно было бы перераспределить иконки между ними.
Кнопочки на Панели Быстрого Запуска надо тоже как-то поделить. Скажем, иметь несколько Панелей Быстрого Запуска — по одной на каждый Рабочий стол.
Итак, обозначим список наших пожеланий.
- Мы хотим, чтобы было много Рабочих столов.
- Мы хотим, чтобы на каждом Рабочем столе при необходимости была прокрутка.
- Мы хотим, чтобы ярлыки приложений располагались отдельно от иконок документов и папок с документами.
- Мы хотим, чтобы для каждого Рабочего стола была своя Панель Быстрого Запуска.
- Мы хотим, чтобы текст подписи под значками не усекался, а отображался полностью, в удобоваримом виде.
Как эти требования выполняются в Программном комплексе «Пользовательская оболочка» (в дальнейшем — ПКПО)?
В ПКПО есть аналог Рабочего стола, называемый Составным проектом. Пользователь может создать практически неограниченное количество Составных проектов. Все Составные проекты образуют древовидную структуру и, естественно, у каждого Составного проекта есть имя. Кроме того, Вы можете сразу переходить из одного Составного проекта в другой сразу, вне зависимости от места в Дереве Проектов, если создадите объект «Родственный проект».
Составной проект, с которым в данное время работает пользователь, отображается в специальной панели — Окне Просмотра. Слева от Окна просмотра располагается Панель Кэша Приложений, куда пользователь помещает ярлыки приложений, которые могут понадобиться в текущем Составном проекте. Если в любой из панелей содержится много объектов, автоматически появляется прокрутка. Граница между панелью Кэша Приложений и Окном просмотра изменяемая. Объекты в Окне Просмотра сортируются по одному из выбранных критериев, но сначала отображаются папки, т. е. вложенные Составные проекты (см. Рисунок 1).
В каждой из панелей «Пользовательской оболочки» есть несколько вариантов отображения иконок и подписей к ним, в том числе, без усечения текста.
Рисунок 1. Окно Просмотра и Кэш Приложений
А как насчёт Панели Быстрого Запуска?
Этот элемент интерфейса формируется с помощью другого приложения ПКПО — Пользовательской панели, аналога Панели Задач Windows (см. Рисунок 2). Панель Кэша Приложений (см. Рисунок 2) — это и есть аналог Панели Быстрого Запуска Windows.
Рисунок 2: Пользовательская панель
Таким образом, во время работы над текущим Составным проектом мы можем запустить нужное приложение, нажав кнопку на Панели Кэша Приложений.
Если с помощью средств навигации Окна Просмотра мы переходим в другой Составной проект, содержимое панелей Кэша Приложений обоих приложений полностью обновляется.
Поскольку Кэш Приложений отображается сразу в двух приложениях, Вы можете скрыть панель Кэша Приложений в «Пользовательской оболочке», тем самым увеличивая размер Окна Просмотра (см. Рисунок 1).
У некоторых пользователей может возникнуть возражение — некоторые приложения нужны в нескольких, или даже во всех Составных проектах, например, веб-браузер или пакет офисных программ. Что делать?
Эта проблема так же легко решается с помощью ПКПО.
Для ярлыков приложений, которые нужны во всех Составных проектах, выделяется специальная папка — Список Приложений, формируемая пользователем вручную, по собственному усмотрению. Ярлыки можно группировать в папки. В приложении «Пользовательская оболочка» Список Приложений при необходимости отображается в Правой панели (см. Рисунок 3).
Рисунок 3. Список Приложений в Правой панели
В приложении «Пользовательская панель» Список Приложений отображается в виде панели с кнопками — по одной кнопке на каждый ярлык приложения и каждую папку в корне Списка Приложений. Вложенные в папки Списка Приложений объекты отображаются в виде меню (см. Рисунок 2).
Примечания:
- Если иконки не помещаются на какой-либо панели приложения «Пользовательская панель», появляются кнопки для прокрутки (см. кнопку прокрутки Списка Приложений на Рисунке 2).
- Панель Кэша Приложений «Пользовательской оболочки» может работать и в режиме отображения Дерева папок (режим по умолчанию), подобно окну Проводника:
Рисунок 4: Панель Кэша Приложений в виде дерева
Дополнительную информацию по ПКПО можно найти на странице программы.
Продолжение следует …
Этот материал написан посетителем сайта, и за него начислено вознаграждение.
Содержание
- Aston 1.9.2
- Blackbox 0.0.92
- LiteStep 0.24.7
- SharpE cvs6
- Talisman 2.98
- Сводная таблица
Введение
Большое количество начинающих пользователей Windows искренне считают стандартный интерфейс операционной системы – ее неотъемлемой частью. На самом деле, это заблуждение. Панель задач, главное меню, системный лоток, значки на рабочем столе и другие элементы интерфейса создаются и обрабатываются отдельным классом программ – оболочками. По умолчанию для подобных целей в Windows используется программа explorer.exe.
Вы можете установить программный продукт, заменяющий функции стандартного инструмента обработки интерфейса. При этом новая программа может предлагать принципиально иные методы организации взаимодействия с пользователем.
В этой статье вы не найдете программ, работающих в системе только в качестве приложений. Статья — не путеводитель по украшениям и улучшениям стандартного интерфейса. Это путеводитель по альтернативным оболочкам для Windows, работающим вместо модуля explorer.exe.
К содержаниюAston 1.9.2
Aston
Большинство разработчиков альтернативных оболочек стараются предлагать нечто экстраординарное, феерическое, дабы у пользователя замирало сердце от восторга, от первых минут общения с продуктом. Разочарование наступает несколько позже, когда одна за другой начинают ломаться привычки, выработанные годами. Между тем, опытные пользователи компьютеров — одни из самых ленивых созданий на земном шаре. И дело тут не в отсутствии стремления к созиданию. Просто, с опытом приходит понимание – если что-то исправно работает, лучше это не трогать (основной постулат системного администратора).
Aston создан для тех, кто ценит свободное время и не желает расставаться с проверенными временем навыками работы с интерфейсом операционной системы Windows. Рабочий стол Aston не сильно отличается от стандарта, создаваемого с помощью Explorer. Вы видите точно такую же панель задач, системный лоток, Главное меню и значки на рабочем столе.
Aston позволяет организовывать трехъярусные боковые панели, в которые можно поместить большинство используемых вами приложений, дабы рабочий стол не представлял собой огромный список однообразных ярлыков. Значки могут иметь произвольный размер, содержать анимацию.
Вы можете четко отслеживать статус приложений, отображающихся на панели задач. Если окно задачи минимизировано, то справа от ее значка загорится черная стрелка. Наведение мыши на любую задачу внутри панели отобразит миниатюру, на которой будет показано содержимое рабочего окна приложения.
В верхней части рабочего окна отображается дополнительная панель, на которой собраны основные сервисные функции. Вы можете вызывать настройки Aston, его дополнительные модули, а также открывать Панель управления, запускать программы и вызывать Свойства дисплея. Кроме того, вы можете осуществлять поиск в Web, используя специальную строку поисковых запросов. Базовый дистрибутив имеет лишь поисковый движок Google, но вы можете устанавливать дополнительные модули. Кнопка автоматического обновления дополнила список еще четырьмя элементами. В левой части панели отображаются аналоговые часы, а справа находятся кнопки выключения и перезагрузки рабочей станции.
Главное меню Aston сильно отличается от привычного вида Explorer. Вы не видите списка наиболее популярных программ, ярлыки приложений Web по умолчанию также отсутствуют. Настройка элементов Главного меню осуществляется из общей панели конфигурации продукта. Работать с Главным меню Aston крайне неудобно по причине отсутствия наглядных механизмов drag & drop.
Дистрибутив Aston включает в себя четыре темы оформления, отличающиеся друг от друга лишь дизайном. Функциональные возможности всех рабочих столов (тем) практически идентичны.
Переход из Aston в Explorer и обратно требует закрытия текущего сеанса пользователя. Если вы решите удалить альтернативную оболочку, то перед началом процедуры обязательно вернитесь в Explorer.
Чтобы узнать более подробную информацию о продукте, ознакомьтесь со статьей «Aston 1.9.2 — альтернативный рабочий стол для Windows».
К содержаниюBlackbox 0.0.92
Blackbox
Blackbox – быстрая, компактная рабочая среда, известная многим пользователям Linux. Ее вариант для Windows имеет гораздо меньшую популярность. Большинство пользователей, привыкших к стандартному интерфейсу операционной системы, с большой неохотой осваивают даже наиболее раскрученные продукты данного сектора рынка. Что уж говорить о маленькой скромной программе, созданной группой энтузиастов, решивших в свое время перенести код оболочки из открытой ОС в среду Win32.
На официальной странице предлагается несколько вариантов дистрибутива оболочки. Они отличаются настройками по умолчанию, списком включенных в состав продукта тем оформления, набором подключаемых модулей.
Установка оболочки предельно проста – вы запускаете BAT-файл, который вызывает исполняемый модуль с ключом -install. При этом в реестр заносится новое значение переменной shell. Вы завершаете текущий сеанс пользователя и снова заходите в систему уже с новой оболочкой.
На рабочем столе отображается новая панель задач и несколько ярлыков. Настройка оболочки осуществляется с помощью правки текстовых конфигурационных файлов. Запуск приложений может осуществляться с помощью стандартного инструмента системы, вызываемого в Explorer с помощью сочетания клавиш Win+R. Кроме того, нажатие левой кнопки мыши в произвольном месте рабочего стола вызывает аналог Главного меню Windows. Его настройки во многом зависят от выбора дистрибутива Blackbox. Сортировка и изменение элементов списков осуществляется только с помощью правки конфигурационного файла. Панель задач с честью выполняет возложенные на нее обязанности. Все запущенные приложения отображаются внутри панели, а в правой ее части находится всем известный системный лоток. Вы можете скрывать его с помощью специальных стрелок.
Переключение между задачами может осуществляться не только с помощью клавиатурного сочетания Alt+Tab и выбора нужного элемента на панели задач. Вы можете последовательно перемещаться по приложениям, щелкая мышью по стрелкам навигации, расположенным по краям панели.
В левой ее части располагается инструмент переключения между рабочими столами, являющийся нормой для рабочих сред Linux. Рабочие столы именуются греческими буквами алфавита – alpha, beta, gamma.
Поведение окон и их дизайн также меняются после установки Blackbox. Двойной щелчок мышью по заголовку рабочего окна не минимизирует его, а производит сворачивание. При этом прячется все содержимое окна, остается лишь его заголовок.
Оболочка показала стабильную работу без каких-либо серьезных ошибок. Можно лишь отметить не совсем корректную работу Total Commander, который не всегда сворачивался в системный лоток.
Работать в Blackbox не совсем удобно по причине отсутствия большинства привычных элементов интерфейса Windows. Вы не можете вызывать с помощью правой кнопки мыши традиционное контекстное меню, чтобы, например, вызывать свойства дисплея. Настройка Главного меню – весьма запутанная задача для неподготовленного пользователя.
С другой стороны, на рабочих станциях с малым количеством оперативной памяти, использование Blackbox позволяет заметно ускорить работу системы благодаря более редким обращениям к жесткому диску. Оболочка занимает около пяти мегабайт в оперативной памяти.
К содержаниюLiteStep 0.24.7
Официальный сайт: www.lsdev.org
Размер: 3576 КБ (OTS Installer)
Цена: бесплатный
LiteStep
LiteStep – компактная оболочка, имеющая модульную структуру. На официальном сайте можно загрузить лишь ядро оболочки, обеспечивающее необходимый функциональный минимум. Кроме того, разработчики не создают установочный пакет для своего продукта, предлагая лишь загрузить архив с программой.
Если вы решите последовать примеру автора и установить на свою рабочую станцию Litestep, то можете воспользоваться любым из предлагаемых в Сети дистрибутивов оболочки, включающим в себя понятный установщик, некоторый набор подключаемых модулей, а также простые предварительные установки, рассчитанные на неподготовленного пользователя.
После установки оболочки задается вопрос о расположении пользовательской информации, а также о списке ваших программных приоритетов. Оболочка определяет большое количество установленных в системе продуктов, но если вдруг какая-то из категорий осталась неопознанной, вы можете самостоятельно указать программу. Например, на тестируемой рабочей станции пришлось вручную назначать IRC-клиент по умолчанию.
После завершения всех приготовлений, вам предлагается перезапустить систему, хотя достаточно лишь начать новый сеанс. Тема, установленная по умолчанию, включает в себя панель задач, системный лоток, Главное меню, а также менеджер виртуальных столов. Внутри его панели вы можете видеть миниатюры рабочих окон, на которых отображаются значки приложений. Если вы внутри менеджера перенесете миниатюру из одного стола на другой, то рабочее окно приложения осуществит аналогичный переход.
Рабочий стол может содержать ярлыки приложений, однако управление ими осуществляется только с помощью текстовых конфигурационных файлов. Главное меню Litestep вызывается с помощью правой кнопки мыши. Некоторые темы оформления включают в себя отдельную кнопку на панели задач, через которую можно осуществлять доступ к основополагающему элементу интерфейса.
Litestep обладает удивительно гибкой системой поддержки смены тем оформления и подключения дополнительных модулей. Все предельно просто. Находите в Сети понравившуюся вам тему. Загружаете ее, запускаете на выполнение. Программа выводит список недостающих модулей в системе и предлагает вам их дополнительно загрузить. Вы соглашаетесь, происходит процедура загрузки, после чего новая тема готова к применению. Вся процедура отнимает считанные секунды при наличии широкополосного подключения и, в любом случае, не больше минуты при коммутируемом соединении с Сетью. Пользователю не нужно самостоятельно искать модули, устанавливать их – все эти процедуры берет на себя оболочка.
В результате мы имеет ситуацию, когда новая тема приносит в систему не только новое оформление, но и уникальный набор инструментов, полностью преобразующий оболочку буквально на глазах. Разумеется, вы можете менять настройки тем вручную, самостоятельно добавляя и удаляя любые ее элементы.
C помощью подключаемых модулей, Litestep может отображать на рабочем столе свободное место на жестких дисках, показывать степень загрузки процессора, управлять из любой панели проигрывателями Winamp и Windows Media Player (по умолчанию система настраивается именно на них). Другие примеры – это навигация по локальной файловой системе прямо из панели задач, прогноз погоды в форме отдельного меню, удобная и компактная панель запуска приложений, а также разнообразные развлекательные, игровые модули (например, миниатюрный арканоид).
Настройка оболочки осуществляется исключительно с помощью правки текстовых конфигурационных файлов. Правда, стоит отметить, что существуют отдельные подключаемые модули, позволяющие переложить на себя часть нагрузки по конфигурированию основного продукта. Вы можете назначать горячие клавиши не только на вызов любых приложений, но и на огромное количество системных операций.
Litestep, конечно, не лишен недостатков. Во время загрузки дополнительных модулей оболочка блокируется. В течение всей процедуры инсталляции, вы будете наблюдать рабочее окно, отображающее ее процесс. Панель задач не совсем корректно обновляется. Если вы переместите рабочее окно поверх панели, то иногда не происходит ее перерисовка, что оставляет хаотический след. Несколько раз во время тестирования отрытые приложения, работающие в фоновом режиме в системном лотке, бесследно исчезали, пропадая также из поля зрения стандартного менеджера задач. Установка новых тем оформления также не показалась стабильной. Некоторые темы отказались работать, по причине несовместимости некоторых дополнительных модулей. При запуске любого окна Explorer, оболочка временно блокируется, не реагируя ни на какие манипуляции. Выгрузка из памяти модуля explorer.exe возвращает Litestep к жизни.
Несмотря на мелкие недочеты, Litestep – в первую очередь, гибкая, масштабируемая оболочка, позволяющая создавать уникальные по функциональным возможностям интерфейсы.
К содержаниюSharpE cvs6
SharpE
SharpE — мощная альтернативная оболочка, распространяемая с открытыми исходными текстами. Изначально, разработкой продукта занималась команда LDI, но, начиная с лета 2005 года, проект обрел полную независимость.
Программа имеет удобный инсталлятор, с помощью которого происходит установка и первоначальная настройка оболочки. После завершения установки продукта и начала нового пользовательского сеанса, происходит загрузка нового интерфейса.
Большинство разработчиков оболочек стараются скопировать концепцию стандартной панели задач Windows. Это означает, что единая панель представляет весь идейный потенциал оболочки – список запущенных процессов, кнопка вызова главного меню, системный лоток, быстрый вызов приложений и многое другое. SharpE предлагает иной механизм. Панелей может быть много. На каждой их них по умолчанию представляется лишь небольшой набор инструментов. При желании вы можете изменять, комбинировать элементы панелей, достигая максимального удобства в работе.
Итак, при первом старте оболочки вы видите три панели в нижней части экрана и одну наверху. Системный лоток выделен в отдельную структуру и может перемещаться независимо от основного набора инструментов. Список запущенных приложений – независимая панель, на которой в отдельной строке отображается заголовок активной задачи. Это очень удобно, если вы запустили более десятка приложений. На панели задач уже давно не хватает месте, вы не видите заголовков элементов. Быстро переключаясь между ними, вы можете оперативно знакомиться с заголовками окон. Рядом с запущенными приложениями располагается список программ для быстрого запуска.
Менеджер виртуальных рабочих столов – отдельная панель. По умолчанию вы можете работать на четырех столах. Все окна приложений отображаются на панели в виде миниатюр.
В верхней части рабочего окна располагается панель, на которой размещаются небольшие подключаемые модули. Базовый дистрибутив включает огромный список приложений, работающих в качестве плагинов. Разработчики сразу предлагают отслеживать загрузку процессора в реальном времени, степень заполнения оперативной памяти и файла подкачки, помещают кнопку вызова главного меню и строку запуска приложений.
С помощью правой кнопки мыши вы можете вызвать полный список модулей, доступных для помещения на панель. Например, можно запустить примитивный блокнот для ведения заметок, экранную лупу, уровень громкости звука.
Вы пользуетесь программой для обмена файлами eMule? Вместо стандартного, малоинформативного значка в системном лотке, SharpE предлагает отдельный модуль, показывающий текущий статус работы клиента p2p-сети. На двух графиках отображается скорость приема и отдачи данных, статус (LowID или HighID) инструменты лимитирования ширины канала, количество активных источников.
Вы можете размещать на панели кнопки, открывающие определенные папки на жестком диске. При этом вызывается собственное компактное окно оболочки, а не стандартное приложение explorer.exe. Если вы часто переписываете данные в какую-либо папку, то можете создать отдельную «мишень». Перенос мышью любых данных тут же активирует процедуру копирования информации.
Рабочий стол также может являться местом запуска разнообразных модулей. Во-первых, стоит отметить, что стандартные ярлыки запуска приложений имеют место и в SharpE, причем размер их не ограничен. На рабочем столе можно размещать аналоговые часы, имеющие дизайн согласно выбранной теме оформления. Также можно включить прогноз погоды, создать ярлыки в виде ссылок на web-страницы (вызывается браузер, установленный в системе по умолчанию), писать произвольный текст. Текст, написанный прямо на обоях, может иметь заданный пользователем размер, цвет, кегль и тень. Также допускается помещение его в отдельную рамку.
Смена тем оформления может происходить с помощью отдельного инструмента, на котором отображается миниатюра предварительного просмотра. В базовый дистрибутив включено восемь тем. Управление некоторыми параметрами оболочки также осуществляется визуальным методом. Окно настроек довольно примитивно, разработчики не стали заставлять пользователей изучать десятки, сотни разнообразных пунктов меню.
SharpE отличает хорошая продуманность логической структуры интерфейса, ощущение его завершенности. Большой набор подключаемых модулей может удовлетворить многие специфические потребности пользователя. Оболочка работает на удивление очень стабильно, послушно реагируя на изменение настроек. Единственное нарекание вызвано пропажей eMule из системного лотка после запуска специального модуля, отображающего подробную информацию о работе клиента. После выгрузки плагина из памяти, значок не вернулся на законное место и eMule стал недосягаем.
В данный момент близится к концу полная переработка программного продукта, которая затронет не только формальное изменение кода, но и некоторые пользовательские аспекты. Например, решено отказаться от записи настроек каждого пользователя в реестр Windows, вместо чего будут создаваться отдельные XML-файлы. Впрочем, для многих не очень крупных свободных проектов, сроки – понятие весьма условное. Когда над душой не стоит начальник, и разработка не является единственным источником дохода в жизни, выход новых версий может затягиваться на неопределенное время.
К содержаниюTalisman 2.98
SharpE
При разработке альтернативной оболочки немаловажную роль играет ее дизайн. Пользователь устанавливает программный продукт, меняющий облик и поведение операционной системы. Невзрачный внешний вид программы может сразу проложить ей дорогу в мусорную корзину. Чтобы остаться на жестком диске более чем на испытательный срок, отведенный лицензией, необходимо, как минимум, произвести на пользователя сильное положительное впечатление, Talisman относится именно к этой категории программ, очарование которых кроется во внешнем виде.
Программа может функционировать как в виде дополнительного инструментария стандартного рабочего стола, так и в качестве полноценной альтернативной оболочки. После процедуры установки вам предлагается широкий выбор рабочих столов.
По умолчанию устанавливается видоизмененный рабочий стол, на котором отсутствуют стандартные ярлыки Explorer, и появляется множество новых элементов. Вы можете запускать приложения с помощью видоизмененного Главного меню и из дополнительной панели, расположенной в верхней части экрана. Щелчок правой кнопкой мыши на любом из элементов интерфейса Talisman открывает дополнительное меню, в котором сосредоточено большое количество пользовательских и служебных элементов. Кроме того, данное меню является универсальным средством смены тем оформления.
Talisman предлагает две защищенные от неосторожного изменения темы. Особое внимание стоит уделить «Мультимедиа центру» — весьма полезной находке для тех, кто любит устраивать дома вечеринки. Примитивный рабочий стол с доступом лишь к мультимедийным функциям рабочей станции, возможно, станет для компьютера спасением. Ведь после изрядного принятия спиртных напитков, работа за стандартным рабочим столом Windows больше напоминает русскую рулетку.
Talisman может использовать в качестве обоев интерактивную карту мира. Вы можете просматривать реальное время в любой точке земного шара и даже видеть области распространения религий. Хотя, в данной карте есть откровенные нелепости и ошибки.
Вы можете запускать Talisman также в качестве приложения, поверх стандартной оболочки. Особенность программы в том, что смена режимов и тем оформления может происходить без повторной авторизации пользователя. Данная возможность бывает незаменима, если вы, например, загружаете огромный файл через коммутируемое соединение, а сервер не поддерживает докачку. Повторная авторизация разрывает сетевые соединения.
Работая как приложение, Talisman позволяет загружать на стандартный рабочий стол различные объекты. Например, вы можете организовать в правой части экрана большую панель с гигантскими значками. Людям с ослабленным зрением будет нетрудно разглядеть очертания ярлыков любимых приложений.
Другой пример. Вы можете заполнить рабочий стол аналоговыми часами, показывающими время в различных городах мира. Если вы часто путешествуете с ноутбуком, то подобная оперативная информация может стать насущной необходимостью.
С точки зрения структуры, рабочий стол Talisman представляет собой совокупность объектов. В качестве объекта может выступать ярлык для запуска программы, небольшая утилита (виджет), произвольные панели (в том числе панель задач и системный лоток) и другое. Настройка всех элементов производится с помощью единого, максимально унифицированного интерфейса.
Talisman изменяет не только графическую составляющую интерфейса, но и позволяет присваивать объектам и событиям свои звуки, а также горячие клавиши.
Несметные богатства возможностей продукта имеют и обратную сторону – большое количество серьезных ошибок и мелких недочетов. В режиме прикладной программы ни в одной теме, предлагающей собственную панель задач, не отображается системный лоток Windows. Если вы перейдете в режим оболочки, то проблема решается частично – лоток появляется, но работает с многочисленными нарушениями. Стандартный индикатор клавиатуры убрать из лотка нельзя, а значит, при использовании утилит, типа Punto Switcher, вы всегда любуетесь двумя индикаторами. Излишняя русификация программы порождает нелепые казусы: один индикатор показывает «En», а второй, «фирменный» — «Ан». Ваши сетевые соединения, напротив, не желают отображаться ни при каких условиях. Если в трее много значков, то они начинают «выдавливаться» на область рабочего стола, подобно соку из крепко сжатого лимона. Некоторые утилиты, сворачивающиеся в системный лоток, порождают артефакт – заголовок окна отображается на рабочем столе. Иногда кнопка «Пуск» исчезает. Иногда при смене тем оформления из панели задач пропадают все запущенные приложения. Помогает только полная перезагрузка оболочки.
Довольно часто значки приложений в панели задач не соответствуют программам. Бывает так, что приложения просто «меняются» значками. Во время тестирования рабочее окно файлового менеджера Total Commander (молодец, половину оболочек заставил показать свои недостатки) несколько раз бесследно исчезало с рабочего стола и таинственным образом возвращалось обратно после возврата в Explorer.
Спорное решение – назначить на правую кнопку мыши вызов фирменного меню «Пуск». Привычная операция – вызов свойств объекта с помощью правой кнопки мыши оказывается недоступной. Чтобы достучаться до свойств объекта, вам придется открыть свойства всей темы и уже оттуда редактировать необходимый элемент.
Бесспорно, Talisman обладает шикарным дизайном. Огромное количество тем оформления, предлагающих рабочие столы на любой вкус, заставляют говорить о продукте, как о виртуозе искусства перевоплощения. Но многочисленные недоработки программной части очень сильно вредят его репутации.
К содержаниюНемного о мерах предосторожности
Полная замена стандартного интерфейса новой оболочкой – это не просто рядовая операция по установке какой-нибудь утилиты. Не зная сути происходящих процессов при смене интерфейса, можно элементарно запутаться и навредить своей системе.
Немного теории. Как уже было сказано во вступлении, за все элементы стандартного интерфейса отвечает программа explorer.exe. Во время загрузки операционной системы, после того, как прошла авторизация пользователя, из реестра берется значение, отвечающее за выбор оболочки. Запустите regedit.exe и откройте ветку реестра
[HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWinlogon]
За выбор оболочки отвечает строковый параметр «shell». По умолчанию он имеет значение «explorer.exe».
Когда вы устанавливаете новую оболочку, данной переменной присваивается новое значение, которое состоит из пути и имени исполняемого файла альтернативного продукта. Большинство из участников данного обзора обладают утилитами, позволяющими самостоятельно менять оболочки. Но если вдруг у вас возникли затруднения с программой, она плохо работает, и вы не можете никак ее удалить с компьютера – откройте реестр и верните первоначальное значение переменной «shell».
К содержаниюСводная таблица
Работа в качестве приложения | — | — | — | — | + |
Виртуальные рабочие столы | — | + | + | + | + |
Поддержка плагинов | + | + | + | + | — |
Темы оформления могут автоматически загружать недостающие плагины | + | — | + | — | — |
Импорт настроек Explorer | + | — | — | — | — |
Смена стиля оформления окон | — | + | — | — | — |
Ярлыки на рабочем столе | + | — | + | + | + |
Визуальная настройка (наличие конфигуратора) | + | — | — | + | + |
Объем занимаемой оперативной памяти при настройках по умолчанию, МБ | 14 | 5 | 19 | 23 | 9 |
В прошлом своём топике я описал альтернативную оболочку для Windows — SharpE. Кому-то понравилась эта среда, возможно некоторые даже перешли на неё. Некоторые заинтересовались настройкой SharpE. Именно им и адресован этот топик. Здесь я опишу, тонкости настройки SharpE. Только не судите строго, потому что я сам во всём разбирался и какой-либо мануал в сети отсутствует. Мой взгляд отнюдь не профессиональный, поэтому прошу дополнений и исправлений в комментариях.
1. Установка
Первым делом надо скачать SharpE с оффицального сайта. По этой ссылке находится страница загрузки. Если нечем распаковать 7z архив советую 7-zip. Расспаковать её можно в любое место. Дальше следует запустить SetShell.exe из папки с программой и выбрать там SharpE. После перезагрузки всё должно работать.
2. Первый взгляд
Вот, что получил я после перезагрузки. Если честно, интерфейс мне понравился, но не очень. „И всё не так, и всё не то…“ © В.Цой. На Gnome пока не похоже. Опишу основные элементы интерфейса. Розовым я обвёл маленькую, почти незаметную кнопочку. Это опции панели. Пока они нам не понадобятся, они нужны уже после основной настройки. К ним я ещё вернусь в последствии. Эта оболочка не работает как эксплорер из одного экзешника. Здесь модульная структура. Есть SharpCore, которая запускает отдельные процессы для панелей и десктопа.
3. Настройка панелей
Сначала запускаем SharpCenter, ссылка на который лежит на рабочем столе. Там разделы: Desktop, Menus, Services, Themes, Toolbars. Начнём с конца, тоесть с панелей(Toolbars). Очевидно, что нам нужно только две панели. Удаляем последнюю. Немного пояснений к SharpCenter. Сверху есть кнопки Add и Edit. Они для добавления панели и изменения имени и расположения панели. После удаления третьей панели, надо растянуть оставшиеся панели на весь экран. Для этого выбираем панель и нажимаем Edit(тот, что сверху). Назовём верхнюю панель TopBar, а нижнюю BottomBar, а в Horizontal Align выбираем FullScreen. Для настройки содержания панели надо нажать Edit в той же строке, что и панель. Сначала я решил настроить нижнюю панель. На ней нехватает только переключалки десктопов. Нажимаем Add, выбираем VWM и Position: Right. Если нажать Edit у модуля, можно его настроить. Вернёмся назад и настроим верхнюю панель. Удалим первые три меню и VWM. Заново создадим три меню, добавим Clock, KeyboardLayout и SystemTray. Советую в настройках KeyboardLayout снять галочку с Display Icon, а в настройках часов с Two Line Display, да и вообще настроить всё под себя. Здесь пока всё.
4. Настройка сервисов
Возвращаемся в начало и выбираем Services. Настроим переключение раскладок клавиатуры. Для этого в настройках сервиса Hotkeys добавим новый элемент с
Name: SwitchLayout
Hotkey: Alt + Shift +
Command надо выбрать с помощью Browse или просто вписать !KLCycle
Также мне не нравятся их курсоры, поэтому предлагаю у сервиса остановить и дизактивировать процесс Cursors. Вернутся курсоры Windows. В настройках VWM можно установить количество виртуальных десктопов. В настройках Exec можно назначить альясы для коммандной строки. А в Shell можно задать область рабочего стола. Так вроде всё, пойдём дальше.
5. Настройка меню
На вкладке Menus выбираем Menus Options. Там надо убрать галочку с Warp Menu. Это разделение меню на несколько при большом количестве элементов. Дамаю, вам это не нужно. Вернёмся к Menus. Здесь надо удалить все КРОМЕ MENU. И добавить ещё три: Applications, Places, System. И отредактировать их. Здесь уже настраивайте сами, наставлять не буду. Если вы закончили, то идём дальше. У нас есть меню(расположение элементов), которые надо превести в соответствие с меню(На верхней панели). Для этого нажимаем ту самую маленькую кнопочку на панели и в подменю Settings выбираем Show Mini Trobbers. Теперь рядом с каждым объектом появилась такая же маленькая кнопочка. Нажмите на неё и выбирите Settings. Здесь, я думаю, вы разберётесь.
6. Темы
В подменю темы лишь одна тема. В её настройках можно поменять иконки, шрифты, обои, скины и их темы. Скмны лежат в папке SharpESkins. Их можно рисовать самому. Я думаю на примере прошлых настроек здесь можно разобраться.
Фух вроде всё. Осветил все вопросы, которые мне задавли в комментариях. Строго не судите, это мой первый, надеюсь не последний, мануал на Хабре, да и вообще. Надеюсь, что вас заинтересовала SharpE, если есть проблемы, спрашивайте в комментах.
UPD: А мануал то оказывается есть…
Сценарий оболочки — это программа на языке программирования оболочки, обычно используемая в Linux и других операционных системах на основе Unix. Однако вы можете создавать и запускать сценарии оболочки в Windows, выполнив дополнительные действия.
Здесь, в этом руководстве, мы упомянули пошаговый метод запуска сценария оболочки в Windows. Давайте начнем!
Как я могу создавать и запускать сценарии оболочки в Windows?
1. Установите подсистему Windows
- Нажмите Windows + I, чтобы открыть настройки.
- Перейдите в раздел Конфиденциальность и безопасность и щелкните Для разработчиков.
- Щелкните переключатель рядом с режимом разработчика. Теперь нажмите «Да» в окне «Использовать функции разработчика».
- Нажмите Windows кнопку и введите Turn Windows Features. Затем выберите отображаемый вариант и нажмите «Открыть».
- Найдите подсистему Windows Linux и поставьте галочку рядом с ней. Нажмите «ОК».
- Следуйте инструкциям на экране и перезагрузите компьютер для завершения.
2. Загрузите Ubuntu и интегрируйте его с WSL
- Нажмите кнопку «Поиск» и введите Microsoft Store.
- Запустите приложение магазина и введите Ubuntu в строке поиска.
- Нажмите Ubuntu из поиска и нажмите «Получить», чтобы загрузить его.
- Найдите приложение и запустите его.
- Командная строка Linux будет установлена на ваш диск.
- Также будет запущена интеграция с WSL.
- Введите имя пользователя и пароль и запишите их для дальнейшего использования. Процесс может занять некоторое время.
3. Создайте сценарий оболочки
- Перейдите в нужное место на вашем компьютере, нажмите Shift клавишу и щелкните правой кнопкой мыши пустое место.
- В контекстном меню щелкните здесь окно Open PowerShell.
- Введите следующую команду для перенаправления в оболочку bash:
bash
- Затем скопируйте и вставьте следующую команду после замены имени файла на имя вашего файла и нажмите Enter, чтобы создать файл сценария оболочки:
cat>filename.sh
- Проверьте созданный файл и вернитесь в PowerShell. Нажмите Ctrl + C, чтобы завершить процесс.
- Чтобы запустить сценарий оболочки, вам нужно добавить некоторые данные. В окне PowerShell введите следующую команду после замены имени файла именем файла и нажмите Enter. Эта команда откроет файл для редактирования:
vi filename.sh
- Нажмите I клавишу, чтобы получить доступ к файлу и начать его редактирование.
- Введите в файл следующую команду:
echo “Hello World”
- Чтобы сохранить содержимое файла и закрыть его, нажмите Esc клавишу на клавиатуре и введите следующую команду, а затем нажмите Enter
: wq
4. Запустите сценарий оболочки
4.1 Используйте PowerShell
- Перейдите в место, где находится ваш файл sh, нажмите Shift клавишу и щелкните правой кнопкой мыши пустое место.
- В контекстном меню щелкните здесь окно Open PowerShell.
- Введите следующую команду и нажмите Enter, чтобы перейти в оболочку bash:
bash
- Затем скопируйте и вставьте следующую команду и нажмите Enter:
sh filename.sh
- Вы увидите результат.
4.2 Используйте командную строку
- Нажмите Windows клавишу, введите CMD и нажмите «Открыть».
- Введите следующую команду и замените папку E:/New на путь к вашему файлу и нажмите Enter:
cd /d E:/New folder.
- Затем скопируйте и вставьте следующую команду, замените имя файла именем файла и нажмите Enter:
bash filename.sh
- Вы получите вывод в окне командной строки.
Итак, это шаги, которые вы можете выполнить для запуска команд сценария оболочки в Windows. Попробуйте это пошаговое руководство, и если у вас есть какие-либо вопросы, сообщите нам об этом в разделе комментариев ниже.
Различные утилиты для изменения интерфейса.
Программы для изменения внешнего вида операционной системы. В разделе собраны пакеты визуальных компонентов (так же известные как Transformation Pack), которые дают возможность изменить интерфейс системы, имитируя, например, более новую версию системы или сделать операционную систему Windows похожей на MacOS. Некоторые программы меняют не весь интерфейс, а только его часть, например, внешний вид кнопки Пуск, прозрачность окон и т. д. После выхода Windows 8 и 10, большую популярность приобрели программы, которые добавляют в новые версии операционной системы старое меню Пуск от Windows 7. Программы для изменения интерфейса помогут вам сделать внешний вид и функционал вашей системы полностью персонализированными и соответствующим вашим потребностям.
Сортировать по:
Релевантности
Оценкам Загрузкам
Classic Shell
4.4.170
Программа, которая восстанавливает меню Пуск в Windows 10, 8, а также делает интерфейс Проводника привычнее.
DesktopMania
2.01
Программа, которая позволит автоматически менять обои рабочего стола через определенные промежутки времени.
Start Menu 8
6.0.0.2
Классический вариант меню Пуск для Windows 8, 8.1 и 10, имеющих по умолчанию неудобный плиточный интерфейс Metro.
Start Menu 7
5.50
Программа для изменения внешнего вида и функционала меню Пуск в Windows.
GhostWin
1.1
Программа, которая делает окна в Windows прозрачными.
HTC Home
3.0 Build 621
Виджеты для рабочего стола Windows, выполненные в стиле интерфейса операционной системы Android.
CustoPack Tools
1.0.0.40
Простое приложение, которое позволит вас настроить внешний вид вашей системы с помощью установки пакетов.
Start Menu X
7.34
Программа, которая делает меню Пуск Windows 7 похожим на меню Пуск Windows XP.
TrueTransparency
1.4.1
TrueTransparency — это бесплатно распространяемая программа, которая изменяет границы и заголовок окна, накладывая на них PNG рисунки, а также делает окна прозрачными.
XWindows-Dock
5.6
Утилита представляет собой панель быстрого запуска в виде Дока Mac OS для Windows.
Rotate
1.0
Шуточное приложение, которое ставит пользователя в тупик, переворачивая рабочий стол вверх ногами.
DeskPins
1.32
Программа, позволяющая отображать одни окна поверх других открытых окон.
Vitrite
1.1.1
Бесплатная программа, с помощью которой вы можете самостоятельно контролировать степень прозрачности окон в Windows.
Одним из недостатков Windows является скудный набор встроенной кастомизации. Более того, с каждой версией операционной системы он становился всё меньше и меньше: сначала исчезли темы приложений, а вскоре и гаджеты Windows. Благо, в ОС от Microsoft есть достаточно возможностей для разработчиков для создания своих приложений, позволяющих кастомизировать систему на усмотрение пользователя.
- В тему: Как изменить цвет выделения в Windows 10 без сторонних программ
WinDynamicDesktop — установка динамических обоев
Это бесплатная программа с открытым исходным кодом, благодаря которой пользователи Windows с лёгкостью смогут устанавливать динамические обои из macOS, которые меняются в зависимости от времени суток (к примеру, когда у вас за окном рассвет, на обоях тоже рассвет). Сразу же после запуска, приложение спрашивает ваше местоположение для того, чтобы узнать время восхода и заката солнца в вашем регионе, также его можно ввести вручную. После этого можно выбрать одну из многих тем, доступных по умолчанию, либо создать свою.
GitHub | Microsoft Store (бесплатно)
TaskbarX — кастомизация панели задач
TaskbarX позволяет настроить панель задач Windows 10, изменить её фон или центрировать иконки, а также скрывать трей, иконки и кнопку пуска на других мониторах. Программа очень быстрая и легковесная, а также не затрагивает реестр, что делает ее полностью безопасной.
GitHub (бесплатно) | Microsoft Store (1 доллар)
Rainmeter — виджеты из Windows 7 и macOS
Windows Vista хоть и невзлюбили за ее нестабильность, но вот гаджеты (виджеты в Vista и 7) многим пользователям пришлись по нраву, их даже сумели портировать на Windows XP. По каким-то причинам Microsoft решила убрать этот функционал в Windows 8 (вероятнее всего, из-за живых плиток, которые выполняют похожую функцию). Да, гаджеты можно вернуть и в Windows 10, но зачем, когда есть стороннее приложение под названием Rainmeter, которое имеет даже больше функционала и регулярно обновляется?
Rainmeter позволяет отображать виджеты на рабочем столе с практически любым функционалом, начиная от простых часов и заканчивая мониторингом использования процессора. В приложении есть поддержка сторонних скинов на любой вкус и цвет, коих большое количество в интернете. Один разработчик сумел даже скопировать виджеты macOS Big Sur и её Dock. Мои любимые же — Win10Widgets, которые выполнены в стиле Fluent Design и прекрасно вписываются в рабочий стол Windows 10.
Кроме этого, приложение легковесное (занимает 16 МБ ОЗУ) и потребляет минимум ресурсов, что подойдёт даже для ноутбуков. Как и первые две утилиты, эта тоже имеет открытый исходный код и совершенно бесплатна.
Официальный сайт (бесплатно)
Winaero Tweaker — твикер с кучей возможностей
Под Windows существует множество программ-твикеров для кастомизации системы, но самая мощная из них — Winaero Tweaker. Количество доступных настроек просто зашкаливает, и наверняка какая-то из них придётся вам по душе. Приложение позволяет настроить как внешний вид системы, так и её функционал, а также не требует установки.
Твикер встречает нас окном с двумя частями: слева дерево доступных опций, а справа — их настройки. Под каждым пунктом есть подробное описание на английском языке. Также присутствует поиск для того, чтобы быстро найти нужный пункт.
Краткий список функций (полный список доступен на этой странице):
- возможность установить свой акцентный цвет системы;
- выключение автоматических обновлений Windows и драйверов;
- выбор звука включения ПК;
- настройки системных шрифтов и их размера;
- отключение Windows Defender;
- возможность изменения цвета и толщины рамки окон;
- отключение запроса пароля после выхода компьютера из спящего режима;
- включение старых встроенных приложений Windows (например, просмотрщика фото);
- возможность вернуть старый вид настроек громкости звука и батареи в панели задач.
ВНИМАНИЕ! Перед использованием, обязательно сделайте точку восстановления системы на случай каких-либо проблем.
Официальный сайт (бесплатно)
QuickLook — предпросмотр файлов без полного открытия
Это приложение позволяет выводить содержание файла на экран нажатием на пробел, прямо как в macOS. Таким образом можно быстро просматривать документы, фотографии и даже видео. С помощью Ctrl и колеса мыши можно увеличивать или уменьшать превью, а кликом на Enter откроется стандартное приложение для открытия данного типа файлов. Также твик поддерживает различные плагины для интеграции с другими файловыми менеджерами, либо открытия неподдерживаемых типов файлов.
GitHub | Microsoft Store (бесплатно)
SmartTaskbar — автоматическое скрытие панели задач
Данная утилита пригодится обладателям ноутбуков, позволяя автоматически скрывать панель задач при открытии окон на весь экран, тем самым увеличивая количество полезного пространства. Также у приложения есть ручной режим работы, который позволяет скрывать панель задач двойным кликом по иконке программы в трее и возможность выключить анимацию сворачивания.
GitHub | Microsoft Store (бесплатно)
PowerToys — продвинутая панель поиска и активные углы из macOS
Microsoft PowerToys — это набор полезных утилит от самой Microsoft, призванных расширить функционал системы. Впервые этот набор создавался ещё для Windows 95 и позже был адаптирован под Windows XP. Спустя 12 лет, компания вспомнила об этом приложении и решила перезагрузить проект уже для Windows 10, с новыми функциями и открытым исходным кодом.
Одной из самых интересных утилит является PowerToys Run, которая добавляет в Windows 10 поиск наподобие Spotlight из macOS, которая работает по всей системе и позволяет искать приложения, файлы, запущенные процессы или даже проводить простые математические расчёты. Запускается же он сочетанием клавиш Alt + Space, при желании его можно изменить в настройках.
Вторая полезная функция — FancyZones. В Windows 10, если вы перетащите окно в угол или сторону экрана, оно изменится до определенного размера, заполнив половину или четверть экрана. FancyZones же позволяет создавать свои макеты расположения окон и быстро их применять. В приложении можно выбирать как заготовленные шаблоны отображения, так и создавать свои. Чтобы воспользоваться ими, достаточно зажать Shift и переместить окно приложения в нужную область.
GitHub (бесплатно)
- Download source (C#) — 87.57 KB
- Download source (VB) — 83.15 KB
- Download latest code sample
About Us
The Microsoft All-In-One Code Framework (http://1code.codeplex.com) is a free, centralized code sample library driven by developers’ needs. Our goal is to provide typical code samples for all Microsoft development technologies, and reduce developers’ efforts in solving typical programming tasks.
Our team listens to developers’ pains in MSDN forums, social media and various developer communities. We write code samples based on developers’ frequently asked programming tasks, and allow developers to download them with a short code sample publishing cycle. Additionally, our team offers a free code sample request service. This service is a proactive way for our developer community to obtain code samples for certain programming tasks directly from Microsoft.
Introduction
In MSDN forums, lots of developers ask how to write Windows Shell extension with .NET languages (e.g. C#, VB.NET).
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/7ceb44d5-dce8-4197-ac55-f0f4fb59eeb4/
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/7ce0c480-59e3-4732-a608-1974a908e44a/
- http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/63d04f72-5c71-40a9-aea3-519c9e9591a6
Prior to .NET Framework 4, the development of in-process shell extensions using managed code was not officially supported because of the CLR limitation allowing only one .NET runtime per process. Jesse Kaplan, one of the CLR program managers, explains it in this MSDN forum thread.
In .NET 4, with the ability to have multiple runtimes in process with any other runtime, Microsoft can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine. This article introduces the in-process side-by-side feature in detail. However, please note that you still cannot write shell extensions using any version earlier than .NET Framework 4 because those versions of the runtime do not load in-process with one another and will cause failures in many cases.
The document explains the theory. How on earth can I write a managed shell extension?
If you search on the internet, you would find that there are almost zero .NET 4 shell extension samples. The few .NET 2 shell extension samples (not supported because of the above reason) have more or less some defects, e.g. not being able to load in x64 environment. In order to meet customers’ needs, we, All-In-One Code Framework project group, would like to fill in the blank. The project group has planned a series of .NET 4 managed Shell extension code samples for Context Menu Handler, Property Sheet Handler, Icon handler, Data handler, Drop handler, Drag-and-drop handler, Thumbnail Handler, Icon Handler, Icon Overlay Handler, and so on. This article introduces the first sample: Context Menu Handler.
CSShellExtContextMenuHandler
: Shell context menu handler (C#)VBShellExtContextMenuHandler
: Shell context menu handler (VB.NET)CppShellExtContextMenuHandler
: Shell context menu handler (C++)
Demo
Here is a quick demo of the context menu handler code sample. After you successfully build the sample project CSShellExtContextMenuHandler
in Visual Studio 2010, you will get a DLL: CSShellExtContextMenuHandler.dll. Run ‘Visual Studio Command Prompt (2010)’ (or ‘Visual Studio x64 Win64 Command Prompt (2010)’ if you are on a x64 operating system) in the Microsoft Visual Studio 2010 Visual Studio Tools menu as administrator. Navigate to the folder that contains the build result CSShellExtContextMenuHandler.dll and enter the command:
Regasm.exe CSShellExtContextMenuHandler.dll /codebase
to register the context menu handler.
Find a .cs file in the Windows Explorer (e.g. FileContextMenuExt.cs in the sample folder), and right click it. You would see the «Display File Name (C#)» menu item in the context menu and a menu seperator below it. Clicking the menu item brings up a message box that displays the full path of the .cs file.
Implementation Details
A. Creating and configuring the project
In Visual Studio 2010, create a Visual C# / Windows / Class Library project named «CSShellExtContextMenuHandler
«. Open the project properties, and in the Signing page, sign the assembly with a strong name key file.
B. Implementing a basic Component Object Model (COM) DLL
Shell extension handlers are all in-process COM objects implemented as DLLs. Making a basic .NET COM component is very straightforward. You just need to define a ‘public
‘ class with ComVisible(true)
, use the Guid
attribute to specify its CLSID
, and explicitly implement certain COM interfaces. For example:
[ClassInterface(ClassInterfaceType.None)] [Guid("B1F1405D-94A1-4692-B72F-FC8CAF8B8700"), ComVisible(true)] public class SimpleObject : ISimpleObject { ... }
You even do not need to implement IUnknown
and class factory by yourself because .NET Framework handles them for you.
C. Implementing the context menu handler and registering it for a certain file class
Implementing the context menu handler:
The FileContextMenuExt.cs file defines a context menu handler. The context menu handler must implement the IShellExtInit
and IContextMenu
interfaces. The interfaces are imported using the COMImport
attribute in ShellExtLib.cs.
[ComImport(),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("000214e8-0000-0000-c000-000000000046")] internal interface IShellExtInit { void Initialize( IntPtr pidlFolder, IntPtr pDataObj, IntPtr hKeyProgID); } [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("000214e4-0000-0000-c000-000000000046")] internal interface IContextMenu { [PreserveSig] int QueryContextMenu( IntPtr hMenu, uint iMenu, uint idCmdFirst, uint idCmdLast, uint uFlags); void InvokeCommand(IntPtr pici); void GetCommandString( UIntPtr idCmd, uint uFlags, IntPtr pReserved, StringBuilder pszName, uint cchMax); } [ClassInterface(ClassInterfaceType.None)] [Guid("B1F1405D-94A1-4692-B72F-FC8CAF8B8700"), ComVisible(true)] public class FileContextMenuExt : IShellExtInit, IContextMenu { public void Initialize(IntPtr pidlFolder, IntPtr pDataObj, IntPtr hKeyProgID) { ... } public int QueryContextMenu( IntPtr hMenu, uint iMenu, uint idCmdFirst, uint idCmdLast, uint uFlags) { ... } public void InvokeCommand(IntPtr pici) { ... } public void GetCommandString( UIntPtr idCmd, uint uFlags, IntPtr pReserved, StringBuilder pszName, uint cchMax) { ... } }
The PreserveSig
attribute indicates that the HRESULT
or retval
signature transformation that takes place during COM interop calls should be suppressed. When you do not apply PreserveSigAttribute
(e.g. the GetCommandString
method of IContextMenu
), the failure HRESULT
of the method needs to be thrown as a .NET exception. For example, Marshal.ThrowExceptionForHR(WinError.E_FAIL);
When you apply the PreserveSigAttribute
to a managed method signature, the managed and unmanaged signatures of the attributed method are identical (e.g. the QueryContextMenu
method of IContextMenu
). Preserving the original method signature is necessary if the member returns more than one success HRESULT
value and you want to detect the different values.
A context menu extension is instantiated when the user displays the context menu for an object of a class for which the context menu handler has been registered.
1 Implementing IShellExtInit
After the context menu extension COM object is instantiated, the IShellExtInit.Initialize
method is called. IShellExtInit.Initialize
supplies the context menu extension with an IDataObject
object that holds one or more file names in CF_HDROP
format. You can enumerate the selected files and folders through the IDataObject
object. If a failure HRESULT
is returned (thrown) from IShellExtInit.Initialize
, the context menu extension will not be used.
In the code sample, the FileContextMenuExt.Initialize
method enumerates the selected files and folders. If only one file is selected, the method stores the file name for later use. If more than one file or no file are selected, the method throws an exception with the E_FAIL HRESULT
to not use the context menu extension.
2. Implementing IContextMenu
After IShellExtInit.Initialize
returns successfully, the IContextMenu.QueryContextMenu
method is called to obtain the menu item or items that the context menu extension will add. The QueryContextMenu
implementation is fairly straightforward. The context menu extension adds its menu items using the InsertMenuItem
or similar function. The menu command identifiers must be greater than or equal to idCmdFirst
and must be less than idCmdLast
. QueryContextMenu
must return the greatest numeric identifier added to the menu plus one. The best way to assign menu command identifiers is to start at zero and work up in sequence. If the context menu extension does not need to add any items to the menu, it should simply return from QueryContextMenu
.
In this code sample, we insert the menu item «Display File Name (C#)», and add a menu seperator below it.
IContextMenu.GetCommandString
is called to retrieve textual data for the menu item, such as help text to be displayed for the menu item. If a user highlights one of the items added by the context menu handler, the handler’s IContextMenu.GetCommandString
method is called to request a Help text string that will be displayed on the Windows Explorer status bar. This method can also be called to request the verb string that is assigned to a command. Either ANSI or Unicode verb strings can be requested. This example only implements support for the Unicode values of uFlags, because only those have been used in Windows Explorer since Windows 2000.
IContextMenu.InvokeCommand
is called when one of the menu items installed by the context menu extension is selected. The context menu performs or initiates the desired actions in response to this method.
Registering the handler for a certain file class:
Context menu handlers are associated with either a file class or a folder. For file classes, the handler is registered under the following subkey.
HKEY_CLASSES_ROOT<File Type>shellexContextMenuHandlers
The registration of the context menu handler is implemented in the Register
method of FileContextMenuExt
. The ComRegisterFunction
attribute attached to the method enables the execution of user-written code other than the basic registration of the COM class. Register calls the ShellExtReg.RegisterShellExtContextMenuHandler
method in ShellExtLib.cs to associate the handler with a certain file type. If the file type starts with ‘.’, it tries to read the default value of the HKCR<File Type>
key which may contain the Program ID to which the file type is linked. If the default value is not empty, use the Program ID as the file type to proceed the registration.
For example, this code sample associates the handler with ‘.cs‘ files. HKCR.cs has the default value ‘VisualStudio.cs.10.0
‘ by default when Visual Studio 2010 is installed, so we proceed to register the handler under HKCRVisualStudio.cs.10.0 instead of under HKCR.cs. The following keys and values are added in the registration process of the sample handler.
HKCR { NoRemove .cs = s 'VisualStudio.cs.10.0' NoRemove VisualStudio.cs.10.0 { NoRemove shellex { NoRemove ContextMenuHandlers { {B1F1405D-94A1-4692-B72F-FC8CAF8B8700} = s 'CSShellExtContextMenuHandler.FileContextMenuExt' } } } }
The unregistration is implemented in the Unregister
method of FileContextMenuExt
. Similar to the Register
method, the ComUnregisterFunction
attribute attached to the method enables the execution of user-written code during the unregistration process. It removes the {<CLSID>}
key under HKCR<File Type>shellexContextMenuHandlers.
Download
Please visit http://1code.codeplex.com to download the latest code sample.
Microsoft All-In-One Code Framework delineates the framework and skeleton of Microsoft development techniques through typical sample codes in three popular programming languages (Visual C#, VB.NET, Visual C++). Each sample is elaborately selected, composed, and documented to demonstrate one frequently-asked, tested or used coding scenario based on our support experience in MSDN newsgroups and forums. If you are a software developer, you can fill the skeleton with blood, muscle and soul. If you are a software tester or a support engineer like us, you may extend the sample codes a little to fit your specific test scenario or refer your customer to this project if the customer’s question coincides with what we collected.
http://cfx.codeplex.com/
- Download source (C#) — 87.57 KB
- Download source (VB) — 83.15 KB
- Download latest code sample
About Us
The Microsoft All-In-One Code Framework (http://1code.codeplex.com) is a free, centralized code sample library driven by developers’ needs. Our goal is to provide typical code samples for all Microsoft development technologies, and reduce developers’ efforts in solving typical programming tasks.
Our team listens to developers’ pains in MSDN forums, social media and various developer communities. We write code samples based on developers’ frequently asked programming tasks, and allow developers to download them with a short code sample publishing cycle. Additionally, our team offers a free code sample request service. This service is a proactive way for our developer community to obtain code samples for certain programming tasks directly from Microsoft.
Introduction
In MSDN forums, lots of developers ask how to write Windows Shell extension with .NET languages (e.g. C#, VB.NET).
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/7ceb44d5-dce8-4197-ac55-f0f4fb59eeb4/
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/7ce0c480-59e3-4732-a608-1974a908e44a/
- http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e
- http://social.msdn.microsoft.com/Forums/en-US/clr/thread/63d04f72-5c71-40a9-aea3-519c9e9591a6
Prior to .NET Framework 4, the development of in-process shell extensions using managed code was not officially supported because of the CLR limitation allowing only one .NET runtime per process. Jesse Kaplan, one of the CLR program managers, explains it in this MSDN forum thread.
In .NET 4, with the ability to have multiple runtimes in process with any other runtime, Microsoft can now offer general support for writing managed shell extensions—even those that run in-process with arbitrary applications on the machine. This article introduces the in-process side-by-side feature in detail. However, please note that you still cannot write shell extensions using any version earlier than .NET Framework 4 because those versions of the runtime do not load in-process with one another and will cause failures in many cases.
The document explains the theory. How on earth can I write a managed shell extension?
If you search on the internet, you would find that there are almost zero .NET 4 shell extension samples. The few .NET 2 shell extension samples (not supported because of the above reason) have more or less some defects, e.g. not being able to load in x64 environment. In order to meet customers’ needs, we, All-In-One Code Framework project group, would like to fill in the blank. The project group has planned a series of .NET 4 managed Shell extension code samples for Context Menu Handler, Property Sheet Handler, Icon handler, Data handler, Drop handler, Drag-and-drop handler, Thumbnail Handler, Icon Handler, Icon Overlay Handler, and so on. This article introduces the first sample: Context Menu Handler.
CSShellExtContextMenuHandler
: Shell context menu handler (C#)VBShellExtContextMenuHandler
: Shell context menu handler (VB.NET)CppShellExtContextMenuHandler
: Shell context menu handler (C++)
Demo
Here is a quick demo of the context menu handler code sample. After you successfully build the sample project CSShellExtContextMenuHandler
in Visual Studio 2010, you will get a DLL: CSShellExtContextMenuHandler.dll. Run ‘Visual Studio Command Prompt (2010)’ (or ‘Visual Studio x64 Win64 Command Prompt (2010)’ if you are on a x64 operating system) in the Microsoft Visual Studio 2010 Visual Studio Tools menu as administrator. Navigate to the folder that contains the build result CSShellExtContextMenuHandler.dll and enter the command:
Regasm.exe CSShellExtContextMenuHandler.dll /codebase
to register the context menu handler.
Find a .cs file in the Windows Explorer (e.g. FileContextMenuExt.cs in the sample folder), and right click it. You would see the «Display File Name (C#)» menu item in the context menu and a menu seperator below it. Clicking the menu item brings up a message box that displays the full path of the .cs file.
Implementation Details
A. Creating and configuring the project
In Visual Studio 2010, create a Visual C# / Windows / Class Library project named «CSShellExtContextMenuHandler
«. Open the project properties, and in the Signing page, sign the assembly with a strong name key file.
B. Implementing a basic Component Object Model (COM) DLL
Shell extension handlers are all in-process COM objects implemented as DLLs. Making a basic .NET COM component is very straightforward. You just need to define a ‘public
‘ class with ComVisible(true)
, use the Guid
attribute to specify its CLSID
, and explicitly implement certain COM interfaces. For example:
[ClassInterface(ClassInterfaceType.None)] [Guid("B1F1405D-94A1-4692-B72F-FC8CAF8B8700"), ComVisible(true)] public class SimpleObject : ISimpleObject { ... }
You even do not need to implement IUnknown
and class factory by yourself because .NET Framework handles them for you.
C. Implementing the context menu handler and registering it for a certain file class
Implementing the context menu handler:
The FileContextMenuExt.cs file defines a context menu handler. The context menu handler must implement the IShellExtInit
and IContextMenu
interfaces. The interfaces are imported using the COMImport
attribute in ShellExtLib.cs.
[ComImport(),InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("000214e8-0000-0000-c000-000000000046")] internal interface IShellExtInit { void Initialize( IntPtr pidlFolder, IntPtr pDataObj, IntPtr hKeyProgID); } [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("000214e4-0000-0000-c000-000000000046")] internal interface IContextMenu { [PreserveSig] int QueryContextMenu( IntPtr hMenu, uint iMenu, uint idCmdFirst, uint idCmdLast, uint uFlags); void InvokeCommand(IntPtr pici); void GetCommandString( UIntPtr idCmd, uint uFlags, IntPtr pReserved, StringBuilder pszName, uint cchMax); } [ClassInterface(ClassInterfaceType.None)] [Guid("B1F1405D-94A1-4692-B72F-FC8CAF8B8700"), ComVisible(true)] public class FileContextMenuExt : IShellExtInit, IContextMenu { public void Initialize(IntPtr pidlFolder, IntPtr pDataObj, IntPtr hKeyProgID) { ... } public int QueryContextMenu( IntPtr hMenu, uint iMenu, uint idCmdFirst, uint idCmdLast, uint uFlags) { ... } public void InvokeCommand(IntPtr pici) { ... } public void GetCommandString( UIntPtr idCmd, uint uFlags, IntPtr pReserved, StringBuilder pszName, uint cchMax) { ... } }
The PreserveSig
attribute indicates that the HRESULT
or retval
signature transformation that takes place during COM interop calls should be suppressed. When you do not apply PreserveSigAttribute
(e.g. the GetCommandString
method of IContextMenu
), the failure HRESULT
of the method needs to be thrown as a .NET exception. For example, Marshal.ThrowExceptionForHR(WinError.E_FAIL);
When you apply the PreserveSigAttribute
to a managed method signature, the managed and unmanaged signatures of the attributed method are identical (e.g. the QueryContextMenu
method of IContextMenu
). Preserving the original method signature is necessary if the member returns more than one success HRESULT
value and you want to detect the different values.
A context menu extension is instantiated when the user displays the context menu for an object of a class for which the context menu handler has been registered.
1 Implementing IShellExtInit
After the context menu extension COM object is instantiated, the IShellExtInit.Initialize
method is called. IShellExtInit.Initialize
supplies the context menu extension with an IDataObject
object that holds one or more file names in CF_HDROP
format. You can enumerate the selected files and folders through the IDataObject
object. If a failure HRESULT
is returned (thrown) from IShellExtInit.Initialize
, the context menu extension will not be used.
In the code sample, the FileContextMenuExt.Initialize
method enumerates the selected files and folders. If only one file is selected, the method stores the file name for later use. If more than one file or no file are selected, the method throws an exception with the E_FAIL HRESULT
to not use the context menu extension.
2. Implementing IContextMenu
After IShellExtInit.Initialize
returns successfully, the IContextMenu.QueryContextMenu
method is called to obtain the menu item or items that the context menu extension will add. The QueryContextMenu
implementation is fairly straightforward. The context menu extension adds its menu items using the InsertMenuItem
or similar function. The menu command identifiers must be greater than or equal to idCmdFirst
and must be less than idCmdLast
. QueryContextMenu
must return the greatest numeric identifier added to the menu plus one. The best way to assign menu command identifiers is to start at zero and work up in sequence. If the context menu extension does not need to add any items to the menu, it should simply return from QueryContextMenu
.
In this code sample, we insert the menu item «Display File Name (C#)», and add a menu seperator below it.
IContextMenu.GetCommandString
is called to retrieve textual data for the menu item, such as help text to be displayed for the menu item. If a user highlights one of the items added by the context menu handler, the handler’s IContextMenu.GetCommandString
method is called to request a Help text string that will be displayed on the Windows Explorer status bar. This method can also be called to request the verb string that is assigned to a command. Either ANSI or Unicode verb strings can be requested. This example only implements support for the Unicode values of uFlags, because only those have been used in Windows Explorer since Windows 2000.
IContextMenu.InvokeCommand
is called when one of the menu items installed by the context menu extension is selected. The context menu performs or initiates the desired actions in response to this method.
Registering the handler for a certain file class:
Context menu handlers are associated with either a file class or a folder. For file classes, the handler is registered under the following subkey.
HKEY_CLASSES_ROOT<File Type>shellexContextMenuHandlers
The registration of the context menu handler is implemented in the Register
method of FileContextMenuExt
. The ComRegisterFunction
attribute attached to the method enables the execution of user-written code other than the basic registration of the COM class. Register calls the ShellExtReg.RegisterShellExtContextMenuHandler
method in ShellExtLib.cs to associate the handler with a certain file type. If the file type starts with ‘.’, it tries to read the default value of the HKCR<File Type>
key which may contain the Program ID to which the file type is linked. If the default value is not empty, use the Program ID as the file type to proceed the registration.
For example, this code sample associates the handler with ‘.cs‘ files. HKCR.cs has the default value ‘VisualStudio.cs.10.0
‘ by default when Visual Studio 2010 is installed, so we proceed to register the handler under HKCRVisualStudio.cs.10.0 instead of under HKCR.cs. The following keys and values are added in the registration process of the sample handler.
HKCR { NoRemove .cs = s 'VisualStudio.cs.10.0' NoRemove VisualStudio.cs.10.0 { NoRemove shellex { NoRemove ContextMenuHandlers { {B1F1405D-94A1-4692-B72F-FC8CAF8B8700} = s 'CSShellExtContextMenuHandler.FileContextMenuExt' } } } }
The unregistration is implemented in the Unregister
method of FileContextMenuExt
. Similar to the Register
method, the ComUnregisterFunction
attribute attached to the method enables the execution of user-written code during the unregistration process. It removes the {<CLSID>}
key under HKCR<File Type>shellexContextMenuHandlers.
Download
Please visit http://1code.codeplex.com to download the latest code sample.
Microsoft All-In-One Code Framework delineates the framework and skeleton of Microsoft development techniques through typical sample codes in three popular programming languages (Visual C#, VB.NET, Visual C++). Each sample is elaborately selected, composed, and documented to demonstrate one frequently-asked, tested or used coding scenario based on our support experience in MSDN newsgroups and forums. If you are a software developer, you can fill the skeleton with blood, muscle and soul. If you are a software tester or a support engineer like us, you may extend the sample codes a little to fit your specific test scenario or refer your customer to this project if the customer’s question coincides with what we collected.
http://cfx.codeplex.com/