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Проверьте свой ПК с помощью нашей бесплатной программы
Антивирусный отчёт сообщества 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 будет полностью удален из системы.
Читайте также: