С HotPlug (оно же "безопасное извлечение USB-устройств") под WinPE на базе 7/8/... бывают проблемы. Связаны они с тем, что для полноценной интеграции HotPlug необходимо приложить довольно много усилий (прописка в реестре, добавление библиотек). И поэтому в большинстве конструкторов (и, как результат - готовых сборок) "безопасное извлечение" не работает. Но, в силу организации библиотек для Windows пустой значок извлечения остается в трее. За его прорисовку отвечает библиотека stobject.dll. Если её удалить из ядра, то значка не будет... как и не будет значков сети/звука, что не есть хорошо. Поэтому предлагаю для решения этой проблемы пойти другим путем - путем использования альтернативных "извлекалок". В этом комплекте есть пропатченные версии библиотеки stobject.dll для РЕ на базе 7/8.0/8.1/10/х86/х64. Библиотеки находятся в папке _System32 с подкаталогами для соответствующей РЕ (выбираем нужную, заменяем в Windows\System32), при их использовании из трея убирается "пустышка" HotPlug, при этом значки сети/звука не затрагиваются. Также в комплект входят альтернативные "извлекалки": 1. EjectUSB - довольно симпатичный вариант от китайцев. Есть х86 и х64 версии. Позволяет извлекать как одно, так и сразу все USB-устройства. Интерфейс английский. 2. USBEjecter - еще одна утилита от китайских товарищей. С одной стороны, немного проигрывает EjectUSB по интерфейсу. Но у неё есть и сильная сторона - утиль позволяет извлекать устройства как обычно (ЛКМ), так и принудительно (ПКМ). Есть вариант с русским переводом (автор перевода Сергей Стрелец). Версия утилиты - только х86, но и под х64 работает без проблем (если в РЕ имеется поддержка х86-подсистемы). Эта утилита используется у меня в сборках 2k10, изначально подправлена мною (заменил родной невыразительный значок, подправил английский перевод). 3. USB_Disk_Eject - тоже вариант (х86)... хотя размер и потребление памяти не вдохновляют. Есть русифицированная версия утилиты (автор перевода Сергей Стрелец). 4. HotSwap - очень нафаршированная утилита (х86, х64) по извлечению вся и всё (харды, флешки, приводы CD/DVD). Но под некоторыми WinPE некорректно определяет устройства, в результате получается чемодан без ручки. * Хочу также упомянуть о вполне "взрослых" комплексах (в комплект не входят) - программах вроде USB Safely Remove или её кровном брате - Zentimo. Их использования позволяет обойтись без патчинга stobject.dll (они сами умеют скрывать значок "безопасное извлечение USB-устройств"). Возможности у них тоже обширные. Но - за все нужно платить: размер необходимых файлов для последних версий измеряется в несколько мегабайт в упакованном виде. Как компромисс можно использовать не такие новые версии - у них размер поменьше (ну и функционал поскромнее). В общем и целом, решение остается за сборщиком. Лично я выбираю между 1 и 2.Скачать: комплект "извлекалок" HotPlug_v2.7z.
Последний раз редактировалось: Гость (2016-03-21 23:10), всего редактировалось 11 раз(а)
Есть еще очень маленькая утилита, интегрируем ее в контекстное меню дисков и вуаля, появляются два дополнительных пункта. Безопасное и принудительное извлечение!!! Спасибо за реализацию: KopBuH91
Последний раз редактировалось: (2015-01-09 16:44), всего редактировалось 2 раз(а)
Joker-2013, вариантов может быть много. Организовать извлечение в контестном меню можно и без утилит: запусти RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll Если WinPE использует в качестве оболочки PeCMD, то вполне можно сделать и свою "утилиту". PeCMD позволяет создавать значки в трее со своим меню и выполнять нужные действия (в частности, извлекать устройство). Также PeCMD позволяет сортировать устройства по типу (USB/HDD/DVD) - т.е., можно отображать только нужное.
Joker-2013, если не заменять - то будет иконка с неработающими пунктами. Если заменить предложенными, то не будет ни иконки, ни пустышки (это полноценный патч).
korsak7, Вот надо же было додуматься в 2k10 в трее выставить "Eject all device" Выбираешь и мышка гаснет и помирает... Билл не смог, а наши вот придумали разлечение. Удивительно, но клавиатура держится (во всяком случае у меня)
gera_serg, в 2k10 флешку "держит": 1. Любая запущенная программа из программного пакета (поскольку SFX-модуль ожидает завершения работы, чтобы очистить папку %Темр% от программы). Решение: закрыть все запущенные программы. 2. Смонтированный wim-архив (поскольку он работает прямо из флешки). Решение: отмонтировать акронисы. Но это уже сложнее (под разными РЕ по-разному монтируются/демонтируются). Либо вообще их не монтировать (не использовать). 3. Смонтированный как диск Y:\ программный пакет. Но вроде он не "держит" флешку (т.е., команда subst не блокирует доступ). Решение в сборке есть - использовать перенос программного пакета (п/п) на РАМ-диск или обычный хард, ярлык в Пуск/Программы/Programs to RAM). Для переноса п/п на хард (если памяти РАМ-диска недостаточно для хранения п/п) нужно предварительно назначить любой раздел харда ТЕМР-овым (Ctrl+Shift+S или "WinPE settings" на раб.столе). Тогда п/п будет перенесен на этот раздел. После переноса все программы будут использоваться из РАМ-диска (или харда), а флешка будет освобождена от обращений.
Обновил набор в шапке (2-я версия). Изменения:теперь все комплекты (патченные версии stobject.dll) отображают зарядку аккумулятора - т.е., скрывается исключительно значок "безопасного извлечения"; добавлены библиотеки для 10-к; добавил пропатченный вариант EjectUSB (в нем "Eject all USB storage devices" заменен на нейтральный "Safely remove", по нажатию на котором никаких действий не производится, только сворачивается панель утилиты).
Текущее время: 26-Апр 06:31
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы