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

    Гость
  • Репутация:0

    [+] [-]
С 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



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

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

    Гость
  • Стаж: 54 года
  • Репутация:

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

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


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

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

    Гость
  • Репутация:0

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

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

    Гость
  • Стаж: 54 года
  • Репутация:

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

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

    Гость
  • Репутация:0

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

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

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

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

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

    gera_serg
  • 1171
  • Стаж: 9 лет 3 месяца
  • Сообщений: 1421
  • Репутация:9

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

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

    gera_serg
  • 1171
  • Стаж: 9 лет 3 месяца
  • Сообщений: 1421
  • Репутация:9

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

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

    Гость
  • Репутация:0

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

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

    Гость
  • Репутация:0

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

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

    SharkyEXE
  • 16220
  • Стаж: 7 лет 5 месяцев
  • Сообщений: 51
  • Репутация:1

    [+] [-]
Всем здравствуйте
Пожалуйста, если кто знает, напишите, а что за утилита, где скачать exe файл или как называется и твик для интеграции
тынц
Есть еще очень маленькая утилита, интегрируем ее в контекстное меню дисков и вуаля, появляются два дополнительных пункта. Безопасное и принудительное извлечение!!!
Спасибо.

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

    goga8686
  • 15240
  • Стаж: 7 лет 9 месяцев
  • Сообщений: 886
  • Репутация:73

    [+] [-]
SharkyEXE, aa нужно скопировать RemoveDrive.exe - в System32 и SysWOW64 создать рег файл или скачать готовый и применить его

Reg-файл

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Drive\shell\removeforce]
"MUIVerb"=hex(2):18,04,37,04,32,04,3b,04,35,04,47,04,4c,04,20,00,3d,04,30,04,\
  3a,04,3e,04,3f,04,38,04,42,04,35,04,3b,04,4c,04,20,00,28,00,3f,04,40,04,38,\
  04,3d,04,43,04,34,04,38,04,42,04,35,04,3b,04,4c,04,3d,04,3e,04,29,00,00,00
"Icon"=hex(2):73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,37,00,37,00,00,00
@="Извлечь накопитель (принудительно)"
"Description"="Принудительно отключить накопитель"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Drive\shell\removeforce\command]
@=hex(2):63,00,6d,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,71,00,20,00,2f,\
  00,63,00,20,00,46,00,4f,00,52,00,20,00,2f,00,46,00,20,00,22,00,75,00,73,00,\
  65,00,62,00,61,00,63,00,6b,00,71,00,22,00,20,00,25,00,25,00,69,00,20,00,49,\
  00,4e,00,20,00,28,00,27,00,25,00,56,00,27,00,29,00,20,00,44,00,4f,00,20,00,\
  45,00,43,00,48,00,4f,00,20,00,1f,04,3e,04,34,04,33,04,3e,04,42,04,3e,04,32,\
  04,3a,04,30,04,20,00,25,00,25,00,7e,00,64,00,69,00,20,00,3a,04,20,00,3f,04,\
  40,04,38,04,3d,04,43,04,34,04,38,04,42,04,35,04,3b,04,4c,04,3d,04,3e,04,3c,\
  04,43,04,20,00,38,04,37,04,32,04,3b,04,35,04,47,04,35,04,3d,04,38,04,4e,04,\
  2e,00,2e,00,2e,00,36,04,34,04,38,04,42,04,35,04,2e,00,2e,00,2e,00,20,00,26,\
  00,20,00,54,00,49,00,54,00,4c,00,45,00,20,00,1f,04,40,04,38,04,3d,04,43,04,\
  34,04,38,04,42,04,35,04,3b,04,4c,04,3d,04,3e,04,35,04,20,00,38,04,37,04,32,\
  04,3b,04,35,04,47,04,35,04,3d,04,38,04,35,04,20,00,34,04,38,04,41,04,3a,04,\
  30,04,20,00,25,00,25,00,7e,00,64,00,69,00,20,00,26,00,20,00,52,00,65,00,6d,\
  00,6f,00,76,00,65,00,44,00,72,00,69,00,76,00,65,00,2e,00,65,00,78,00,65,00,\
  20,00,25,00,25,00,7e,00,64,00,69,00,20,00,2d,00,65,00,20,00,26,00,26,00,20,\
  00,28,00,54,00,49,00,54,00,4c,00,45,00,20,00,18,04,37,04,32,04,3b,04,35,04,\
  47,04,35,04,3d,04,38,04,35,04,20,00,3d,04,30,04,3a,04,3e,04,3f,04,38,04,42,\
  04,35,04,3b,04,4f,04,20,00,43,04,41,04,3f,04,35,04,48,04,3d,04,3e,04,20,00,\
  37,04,30,04,32,04,35,04,40,04,48,04,35,04,3d,04,3e,04,29,00,20,00,26,00,20,\
  00,50,00,41,00,55,00,53,00,45,00,00,00
[HKEY_CLASSES_ROOT\Drive\shell\removesafe]
"MUIVerb"=hex(2):18,04,37,04,32,04,3b,04,35,04,47,04,4c,04,20,00,3d,04,30,04,\
  3a,04,3e,04,3f,04,38,04,42,04,35,04,3b,04,4c,04,20,00,28,00,31,04,35,04,37,\
  04,3e,04,3f,04,30,04,41,04,3d,04,3e,04,29,00,00,00
"Icon"=hex(2):73,00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,\
  00,2c,00,32,00,36,00,00,00
@="Извлечь накопитель (безопасно)"
"Description"="Безопасно отключить накопитель"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Drive\shell\removesafe\command]
@=hex(2):63,00,6d,00,64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,71,00,20,00,2f,\
  00,63,00,20,00,46,00,4f,00,52,00,20,00,2f,00,46,00,20,00,22,00,75,00,73,00,\
  65,00,62,00,61,00,63,00,6b,00,71,00,22,00,20,00,25,00,25,00,69,00,20,00,49,\
  00,4e,00,20,00,28,00,27,00,25,00,56,00,27,00,29,00,20,00,44,00,4f,00,20,00,\
  45,00,43,00,48,00,4f,00,20,00,1f,04,3e,04,34,04,33,04,3e,04,42,04,3e,04,32,\
  04,3a,04,30,04,20,00,25,00,25,00,7e,00,64,00,69,00,20,00,3a,04,20,00,31,04,\
  35,04,37,04,3e,04,3f,04,30,04,41,04,3d,04,3e,04,3c,04,43,04,20,00,38,04,37,\
  04,32,04,3b,04,35,04,47,04,35,04,3d,04,38,04,4e,04,2e,00,2e,00,2e,00,36,04,\
  34,04,38,04,42,04,35,04,2e,00,2e,00,2e,00,20,00,26,00,20,00,54,00,49,00,54,\
  00,4c,00,45,00,20,00,11,04,35,04,37,04,3e,04,3f,04,30,04,41,04,3d,04,3e,04,\
  35,04,20,00,38,04,37,04,32,04,3b,04,35,04,47,04,35,04,3d,04,38,04,35,04,20,\
  00,34,04,38,04,41,04,3a,04,30,04,20,00,25,00,25,00,7e,00,64,00,69,00,20,00,\
  26,00,20,00,52,00,65,00,6d,00,6f,00,76,00,65,00,44,00,72,00,69,00,76,00,65,\
  00,2e,00,65,00,78,00,65,00,20,00,25,00,25,00,7e,00,64,00,69,00,20,00,26,00,\
  26,00,20,00,28,00,54,00,49,00,54,00,4c,00,45,00,20,00,18,04,37,04,32,04,3b,\
  04,35,04,47,04,35,04,3d,04,38,04,35,04,20,00,3d,04,30,04,3a,04,3e,04,3f,04,\
  38,04,42,04,35,04,3b,04,4f,04,20,00,43,04,41,04,3f,04,35,04,48,04,3d,04,3e,\
  04,20,00,37,04,30,04,32,04,35,04,40,04,48,04,35,04,3d,04,3e,04,29,00,20,00,\
  26,00,20,00,50,00,41,00,55,00,53,00,45,00,00,00

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

    SharkyEXE
  • 16220
  • Стаж: 7 лет 5 месяцев
  • Сообщений: 51
  • Репутация:1

    [+] [-]
goga8686, Здравствуйте
Огромное Вам спасибо за помощь! Все работает как часы!


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

Текущее время: 24-Окт 05:17

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


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