Avast shell extension что это

Обновлено: 03.07.2024

В нашей базе содержится 11542 разных файлов с именем ashshell.dll Эта страница содержит информацию об одном файле с конкретными атрибутами. Если вы хотите ознакомиться с общими сведениями о ashshell.dll, посетите страницу с общей информацией . You can also check most distributed file variants with name ashshell.dll. Этот файл принадлежит продукту avast! Antivirus и разработан компанией AVAST Software. Описание этого файла - avast! Shell Extension. Этот файл - динамически подключаемая библиотека. Такая библиотека может загружаться и выполняться любым работающим процессом.

Продукт: avast! Antivirus Компания: AVAST Software Описание: avast! Shell Extension Версия: 6.0.999.0 MD5: 2341eb1047ba6ae71feb630e460cdd3e SHA1: c3c8bab03571ad939b18910e705a39e50562b8c2 SHA256: bad4a9f4bfeb046cc126044119923f352046d419673e60f4bbee66dcd91e27e1 Размер: 122512 Папка: %PROGRAMFILES%\AVAST Software\Avast ОС: Windows XP Частота: Высокая Цифровая подпись: AVAST Software

Проверьте свой ПК с помощью нашей бесплатной программы

Icon

System Explorer это наша бесплатная, удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем.

Антивирусный отчёт сообщества System Explorer

Этот файл проверен следующими антивирусными программами:

Антивирусные программы были активны и содержали новейшие вирусные базы.

Библиотека "ashshell.dll" безопасная или опасная?

Нет комментариев для "ashshell.dll" с определёнными атрибутами. Если вы хотите проверить сумму MD5 файла через базу VirusTotal, нажмите .

Наша окончательная оценка этого файла: Безопасный . Окончательная оценка основана на комментариях, дате обнаружения, частоте инцидентов и результатах антивирусных проверок.

Вызывает ли Библиотека у вас подозрения? Ваш компьютер стал работать медленнее? Замечаете ли вы какое-либо подозрительное поведение ПК? Рекомендуем вам проверить компьютер с помощью нашей бесплатной утилиты .

Комментарии пользователей для "ashshell.dll"

Этот файл не имеет подтверждённых комментариев. Если вы знаете этот файл, то можете добавить свой комментарий .

Добавить комментарий для "ashshell.dll" с определёнными выше параметрами

(*) Пожалуйста, пишите комментарии на РУССКОМ языке. Если вы хотите использовать иной язык, перейдите на страницы с этим языком. Отправляя сведения, вы обязуетесь не публиковать материалы, защищённые авторскими правами, содержащие секретные данные или как-то иначе нарушающие права сторонних владельцев, если только вы не владелец таких прав или не имеете разрешение от соответствующих владельцев на публикацию.

Проверьте свой ПК с помощью нашей бесплатной программы

System Explorer это наша бесплатная, удостоенная наград программа для быстрой проверки всех работающих процессов с помощью нашей базы данных. Эта программа поможет вам держать систему под контролем. Программа действительно бесплатная, без рекламы и дополнительных включений, она доступна в виде установщика и как переносное приложение. Её рекомендуют много пользователей.

Думаю, вы замечали, что некоторые программы добавляют собственные пункты в системное контекстное меню. Например, WinRAR добавляет "Сжать" и "Распаковать в…", ICQ - "Переслать пользователю" и пр. Механизм, с помощью которого ваш код "внедряется" в оболочку Windows, называется Shell Extensions - именно о нем пойдет речь…

Определения


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

Shell Extensions - набор сервисных функций Windows API, призванный обеспечить расширение базовых функций оболочки Windows Explorer за счет наших надстроек. В числе основных функций Shell Extensions:

  • работа с системными контекстными меню;
  • работа с папками и объектами из пространства имен оболочки Windows (Мои Документы, Принтеры, Панель управления…);
  • использование механизма Drag&Drop;
  • создание и использование ярлыков.

Для реализации задуманного нам понадобятся интерфейсы IContextMenu и IShellFolder. Указатель на главный интерфейс IshellFolder, соответствующий "Рабочему столу" оболочки, можно получить, используя функцию SHGetDesktopFolder, объявление которой выглядит так:


Эта функция возвращает нам указатель на интерфейс IShellFolder, который возвращается в переменной ppshf. Далее допустим, что у нас в компоненте имеется поле под названием ShellObject типа String, в котором хранится путь к необходимому объекту (к примеру - C:\Windows\NotePad.exe), и что нам нужно получить его контекстное меню (рис. 2). Для этого сначала используем метод из интерфейса IShellFolder:

  • hwndOwner - дескриптор родительского окна (0);
  • cidl - количество элементов, на которое указывает значение apidl (1);
  • apidl - параметр, представляющий собой уникальный идентификатор объекта;
  • riid - глобальный уникальный идентификатор системы Windows (IID_IContextMenu из файла ShlObj.pas);
  • prgfInOut - зарезервировано, должно быть nil;
  • ppvOut - переменная, которая получит указатель на "заказанный" интерфейс.

После использования этого оператора нам понадобится обратиться к функциям WinAPI - для работы с контекстными меню. Это, в первую очередь:

Синтаксис первой и последней функции, я думаю, понятен и без разъяснений. Функция TrackPopupMenu, собственно, и выводит на экран контекстное меню. Параметры этой функции принимают значения:

  • hMenu - дескриптор контекстного меню. Это тот самый Menu, который мы создали с помощью CreatePopupMenu;
  • uFlags - выравнивание относительно координат. Возможные значения: TPM_CENTERALIGN, TPM_LEFTALIGN, TPM_RIGHTALIGN, TPM_LEFTBUTTON, TPM_RIGHTBUTTON, TPM_RETURNCMD. Этот параметр используется для возврата команды (как будет показано ниже);
  • x, y - координаты, по которым будем "впрыгивать" наше меню;
  • nReserved - соответственно, приравниваем к нулю;
  • hWnd - дескриптор родительского окна;
  • prcRect - указатель на структуру TRect, которая задает "окно" в экранных координатах в пределах которого пользователь может щелкать без каких-либо исчезновений контекстного меню. Если = nil, то при нажатии мышкой за пределами контекстного меню оное исчезнет.

Возвращаемое значение показывает наличие команды или ее отсутствие. Если True - пользователь выбрал пункт; False - соответственно, не выбрал.

А теперь - самое главное

Ну что ж, сделали мы Menu - остается наполнить его содержимым, соответствующим нашему ShellObject. Для этого узнаем сначала его идентификатор (PItemIDList) - сделаем это при помощи метода ParseDisplayName из интерфейса IshellFolder. Этот метод объявлен следующим образом:

function ParseDisplayName (hwndOwner: HWND;pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG;out ppidl: PItemIDList; var dwAttributes: ULONG): HResult; stdcall;

  • lpszDisplayName - имя объекта, для которого надо найти PItemIDList;
  • pchEaten - возвращает символы, которые были правильно разобраны;
  • ppidl - как раз то, что нам нужно (сохраняем в FItemIDList);
  • dwAttributes - атрибуты для только что найденного FItemIDList.

Но здесь следует проявлять осторожность. Как вы помните, нам нужно вывести контекстное меню для C:\Windows\NotePad.exe. Но сделать это прямо нельзя. Поэтому найдем сначала PItemIDList для папки C:\Windows - контейнера нашего NotePad.exe. Пишем:

  • ShellFolder - значение, которое мы получили из SHGetDesktopFolder;
  • FEaten,FAtt - как я уже говорил, мне они не пригодились - но, чем черт не шутит, лучше их все-таки придержать;
  • FItemIDList - сохраняем, он нам еще понадобится.

После удачного завершения надо бы перейти к классу родителя нашего NotePad.exe. Воспользуемся для этого функцией IShellFolder.BindToObject, объявленной следующим образом:

  • pidl - наш FItemIDList;
  • riid - в этом случае указывает на экземпляр IID_IshellFolder;
  • ppvOut - указывает, куда нам его запихнут (скажем, ShellFolder1).

И после очередной строчки кода:

мы получим в переменной ShellFolder0 указатель на интерфейс IShellFolder, соответствующий папке C:\Windows. Теперь мы можем узнать PItemIDList нашего NotePad:

Для чего все это было написано?

Теперь мы без зазрений совести можем приступать к выводу нашего контекстного меню:

Что тут написано. Во-первых - вызов интерфейса IcontextMenu, сопряженного с объектом FItemIDList папки ShellFolder0. Во-вторых, создание дескриптора пустого контекстного меню; заполнение контекстного QueryContextMenu; использование команды TrackPopupMenu для вывода контекстного меню в точку (100, 100).

Обработка результата команды TrackPopupMenu:

  • переменная Command типа LongBool преобразуется в тип Longint;
  • CommandStr - переменная, в которую заносится название команды;
  • DoCommandEvent - процедура обработки события;
  • структура ICI типа _CMINVOKECOMMANDINFO задает параметры, необходимые для запуска на исполнение кода, приписанного выбранному пункту меню по умолчанию;
  • InvokeCommand (ICI) - запуск кода по умолчанию.

Недоработки…

…а где их нет? То есть, конечно, этот компонент работает, я его использую, но в нем (пока) отсутствуют некоторые полезные функции. К примеру, если вы заглянете в файл ShlObj.pas, то обнаружите, что там, помимо использованного нами интерфейса IcontextMenu, объявлены также интерфейсы IContextMenu2 и IContextMenu3, которые используются для расширения базовых функций интерфейса (к примеру, IContextMenu2 используется для работы с элементами подменю). Кроме того, небольшая доработка компонента даст возможность включать в него свои собственные пункты меню (сравните рис. 3 и рис. 4).

Так что не стоит рассматривать эту статью как исчерпывающее руководство по Shell Extensions - она призвана всего лишь пробудить в вас аппетит к дальнейшим исследованиям.

На днях попросили посмотреть, почему новый и далеко не бюджетный ноутбук жутко тормозит, даже собирались нести в магазин сдавать по гарантии.

Моделька ноута и правда оказалась неплохой — Intel Core i5 10-ого поколения с 8 гигами оперативной памяти и двумя накопителями на борту: терабайтным HDD и NvMe SSD под систему, а вот тормозил он действительно капитально (особенно для такого железа). Впрочем, источник проблемы обозначился очень быстро.

Сохранить интригу не получится, так как из заголовка сразу понятно о чём пойдёт речь. К сожалению, Avast из довольно неплохого антивируса превратился лишь в его подобие, что автоматически лезешь в параметры Windows, чтобы тут же удалить, как только встречаешь его на компьютере. Но не тут то было.

Avast не только жутко тормозит работу системы, но и перенял некоторые особенности вирусов (он вроде как создавался бороться со злом, а не примыкать к нему или я что-то пропустил?).

Мало того, что данный "антивирус" пытается без мыла влезть в вашу систему всеми возможными способами — в основном цепляется паровозом к какой-то другой программе, скачиваемой из сети (тут только проверяй галочки, чтобы не наставить кучу лишнего) — так ещё и удалить Avast штатными средствами у вас не выйдет. У него банально нет деинсталлятора, причём нет его не только в привычной "Установке и удалении программ" Windows, но и в папке самой программы.

Почему бесплатную версию Avast можно смело отнести к вирусам или нежелательному ПО?

Не секрет, что ещё два года назад сервисы Avast были признаны шпионскими, а сама компания уличена в слежке за пользователями, изучении их привычек и интересов для формирования их цифрового профиля и дальнейшей продажи этих данных.

Но что конкретно собирает Avast на компьютерах пользователей и где гарантии, что эти данные будут использованы исключительно для рекламных компаний (хотя и это тоже спорный момент)? По всей видимости обработка полученных данных тоже происходит на компьютерах пользователей, иначе почему они так дико тормозят после установки Avast.

Учитывая методы распространения и способы установки (обычно это происходит в фоновом режиме при установке других программ), стоит ли продолжать ей пользоваться? Если программа ведет себя как вирус, предпочитает незаметное скачивание и установку, то вот уже три признака называть её вирусом.

Как по мне, то в погоне на прибылью, разработчики сами выкопали яму своему продукту. Интересно, остались ещё те, кто покупает платную версию Avast? Хотелось бы услышать в комментариях их мнение о продукте.

Чуть не забыл с чего всё началось, ноутбук после удаления Avast ожил. Честно говоря не понимаю, зачем вообще на "десятке" устанавливать дополнительные антивирусы, когда и встроенный весьма неплохо справляется с поставленной задачей.

Подписывайтесь на канал и узнавайте первыми о новых материалах, опубликованных на сайте.

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.

Откройте панель управления Windows и выберите меню "Удаление программ", Установка и удаление программ" или "Программы и компоненты". Найдите в списке все программы Avast и по очереди удалите их.

В открывшемся окне, нажмите "Удалить":


После этого сработает самозащита антивируса Avast, экран будет затемнён и появиться уведомление "Обнаружена попытка удалить Avast". Подтвердите удаление:


Дождитесь завершения процесса удаления:


Для завершения деинсталляции антивируса потребуется перезагрузка системы. Подтвердите это действие:


После перезагрузки, Avast и все его компоненты будут полностью удалены из операционной системы.

Удаление антивируса Avast с помощью утилиты Avast Clear

Если на вашем компьютере была установлена одна из антивирусных программ Avast и вы не можете полностью удалить её стандартным способом, через "Панель управления" - "Удаление программ", то для таких случаев разработчики антивируса выпустили специальную утилиту-деинсталлятор. Эта утилита удаляет все остатки антивирусной программы, включая файлы, драйвера и записи в реестре. Утилита позволяет выполнить удаление аваста, даже если его нет в списке установленных программ или появляется ошибка при обычном удалении.

Загрузите утилиту и запустите её (файл avastclear.exe). Рекомендуется запускать утилиту в "безопасном режиме" Windows, так как в обычном режиме полное удаление не всегда возможно и проводит к ошибкам. Например, может появиться ошибка "The avast! self protection module is enabled. For this reason, the operation cannot be completed", которая говорит о там, что удаление антивируса avast возможно только в безопасном режиме.

Для загрузки в безопасном режиме, нажмите и удерживайте клавишу F8 во время загрузки компьютера, в меню выберите "Безопасный режим" или "Safe Mode", и нажмите клавишу "Enter".

После запуска, утилита проверит, в каком режиме Windows она запущена, и если это не "Безопасный режим", то утилита предложит перезагрузить компьютер с автоматическим входом в "Безопасный режим". Рекомендуем нажать "Да" и подтвердить перезагрузку Windows; или выберите "Нет" для запуска утилиты в обычном режиме.




Во время перезагрузки, может появиться меню, в котором нужно выбрать пункт "Avast Clear Uninstall" (этот пункт выбран по умолчанию):


После запуска утилиты, она сканирует вашу систему на предмет компонентов антивируса Avast. Вы можете изменить папку с обнаруженным продуктом и его редакцию, но исли вы не уверены, то ничего не меняйте и нажмите кнопку "Удалить":


Если удаление прошло успешно, вы увидите информацию "Продукт успешно удалён. " и вам будет предложено перезагрузить компьютер. Нажмите "Перезагрузить компьютер" и после перезагрузки, Avast будет полностью удален из системы.

Читайте также: