[Цитировать]

    conty9
  • 100
  • Стаж: 2 года 9 месяцев
  • Сообщений: 914
  • Репутация:68

    [+] [-]
С 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.
Вложение

Скачать комплект с usbtor.ru



Последний раз редактировалось: conty9 (2016-03-21 23:10), всего редактировалось 11 раз(а)

[Цитировать]

    Гость
  • Стаж: 47 лет
  • Репутация:

    [+] [-]
Есть еще очень маленькая утилита, интегрируем ее в контекстное меню дисков и вуаля, появляются два дополнительных пункта. Безопасное и принудительное извлечение!!!

Спасибо за реализацию: KopBuH91


Последний раз редактировалось: (2015-01-09 16:44), всего редактировалось 2 раз(а)

[Цитировать]

    conty9
  • 100
  • Стаж: 2 года 9 месяцев
  • Сообщений: 914
  • Репутация:68

    [+] [-]
Joker-2013, вариантов может быть много. Организовать извлечение в контестном меню можно и без утилит: запусти RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
Если WinPE использует в качестве оболочки PeCMD, то вполне можно сделать и свою "утилиту". PeCMD позволяет создавать значки в трее со своим меню и выполнять нужные действия (в частности, извлекать устройство). Также PeCMD позволяет сортировать устройства по типу (USB/HDD/DVD) - т.е., можно отображать только нужное.

[Цитировать]

    Гость
  • Стаж: 47 лет
  • Репутация:

    [+] [-]
Я так понимаю, что не будет иконки, а пустое место? (вместо нее)

[Цитировать]

    conty9
  • 100
  • Стаж: 2 года 9 месяцев
  • Сообщений: 914
  • Репутация:68

    [+] [-]
Joker-2013, если не заменять - то будет иконка с неработающими пунктами. Если заменить предложенными, то не будет ни иконки, ни пустышки (это полноценный патч).

[Цитировать]

    avlid
  • 1177
  • Стаж: 2 года 2 месяца
  • Сообщений: 1
  • Репутация:0

    [+] [-]
Большая просьба.. Поправить stobject.dll для Win 8.1 X 86. Пропадает значек батарейки.

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 2 года 2 месяца
  • Сообщений: 1008
  • Репутация:-13

    [+] [-]
Что-то с подменой бледной невнятной иконки в Трее на привычную засада какая-то (у меня) ...
Может кто лучше умеет (USB_Disk_Eject)?

[Цитировать]

    gera_serg
  • 1171
  • Стаж: 2 года 2 месяца
  • Сообщений: 1008
  • Репутация:-13

    [+] [-]
korsak7,
Вот надо же было додуматься в 2k10 в трее выставить "Eject all device"
Выбираешь и мышка гаснет и помирает... Билл не смог, а наши вот придумали разлечение.
Удивительно, но клавиатура держится (во всяком случае у меня)

[Цитировать]

    conty9
  • 100
  • Стаж: 2 года 9 месяцев
  • Сообщений: 914
  • Репутация:68

    [+] [-]
gera_serg, в 2k10 флешку "держит":
1. Любая запущенная программа из программного пакета (поскольку SFX-модуль ожидает завершения работы, чтобы очистить папку %Темр% от программы). Решение: закрыть все запущенные программы.
2. Смонтированный wim-архив (поскольку он работает прямо из флешки). Решение: отмонтировать акронисы. Но это уже сложнее (под разными РЕ по-разному монтируются/демонтируются). Либо вообще их не монтировать (не использовать).
3. Смонтированный как диск Y:\ программный пакет. Но вроде он не "держит" флешку (т.е., команда subst не блокирует доступ).
Решение в сборке есть - использовать перенос программного пакета (п/п) на РАМ-диск или обычный хард, ярлык в Пуск/Программы/Programs to RAM). Для переноса п/п на хард (если памяти РАМ-диска недостаточно для хранения п/п) нужно предварительно назначить любой раздел харда ТЕМР-овым (Ctrl+Shift+S или "WinPE settings" на раб.столе). Тогда п/п будет перенесен на этот раздел. После переноса все программы будут использоваться из РАМ-диска (или харда), а флешка будет освобождена от обращений.

[Цитировать]

    conty9
  • 100
  • Стаж: 2 года 9 месяцев
  • Сообщений: 914
  • Репутация:68

    [+] [-]
Обновил набор в шапке (2-я версия). Изменения: теперь все комплекты (патченные версии stobject.dll) отображают зарядку аккумулятора - т.е., скрывается исключительно значок "безопасного извлечения"; добавлены библиотеки для 10-к; добавил пропатченный вариант EjectUSB (в нем "Eject all USB storage devices" заменен на нейтральный "Safely remove", по нажатию на котором никаких действий не производится, только сворачивается панель утилиты).


Показать сообщения:    

Текущее время: 22-Сен 09:23

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы