Отключить запрос на преобразование видео, скопированного на мультимедийное устройство

35

У меня Samsung Galaxy S II, который при подключении к компьютеру под управлением Windows 7 выступает в качестве «портативного медиаплеера»

GT-I9100 Портативный медиаплеер

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

Хотите конвертировать <video> до того, как оно будет скопировано на ваше устройство?

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

Есть ли способ отключить эти подсказки?

Себастьян Пааске Тёрхольм
источник
1
Я думаю, что я сделал с моим N8, подключив его в режиме запоминающего устройства, так что Windows будет рассматривать его как стандартную флешку. Для SII попытки Applications> Development> USB debugging.
Боб
Почти всегда быстрее и менее проблематично подключить эти устройства как «Mass Storage», если синхронизация не является необходимой, когда вы просто пытаетесь скопировать файлы и знаете, что файлы отформатированы для устройства.
Psycogeek
@Bob: я не верю, что смогу сделать это, так как перешел на Android 4. Отладка по USB включена, но она не переводит ее в режим запоминающего устройства, как в 2.3.5, и позволяет только выберите один из «Media Device (MTP)» или «Camera (PTP)» для режима подключения.
Себастьян Пааске Тёрхольм
Приведенные ниже ответы устарели, поскольку последние версии Android больше не поддерживают режим Mass Storage. И кажется, что эти умные инженеры Microsoft никогда не ожидали, что люди будут раздражены, когда им придется каждый раз сталкиваться с этим ненужным диалогом подтверждения. Кто-нибудь знает альтернативное приложение передачи MTP на Windows? Нечто похожее на программу FTP, но в MTP.
Чертовы овощи

Ответы:

29

Почему это происходит

Это приглашение является одной из функций Windows, реализуемых для устройств, подключенных как устройства MTP . Самый надежный способ отключить его - подключить Galaxy SII в режиме USB Mass Storage. Таким образом, Windows обнаружит его как обычную флешку и передаст файлы, как и любую другую флешку, не заботясь о ее типе. Однако некоторые (желательные) более продвинутые функции могут быть потеряны.

Два основных способа предотвратить это:

  • Подключите телефон в режиме Mass Storage.

  • Отключите расширение оболочки в Windows, которое обрабатывает это. Есть два способа сделать это :

    • Разрегистрируйте .dll.

    • Отключите расширение с ShellExView.


Вариант 1. Изменение режима подключения телефона

Включение режима Mass Storage на Galaxy SII ICS (Android 4.x) ( источник ):

  1. Откройте настройки.
  2. Нажмите «Подробнее» (в разделе «Беспроводная сеть и сеть»).
  3. Затем выберите Утилиты USB ~ Установить режим подключения USB-кабеля.
  4. Выберите Подключить хранилище к ПК, затем.
  5. Подключите USB-кабель от телефона к ПК.
  6. Выберите Включить USB-накопитель. Вот и все.

Вариант 2. Отмена регистрации .dllдля расширения оболочки Windows, которое обрабатывает это

Если по какой-либо причине вы хотите продолжать использовать режим MTP, в Microsoft Updates создан поток, специально посвященный отключению этого приглашения. В частности:

Ну, ранее я не мог найти ссылки на это диалоговое окно в любом файле Windows 7 DLL, поэтому я подумал, что это не связано с Windows. Но теперь я снова посмотрел и нашел ссылки на него в wpdshext.dll. Так что, похоже, это стандартная функция Windows, мои извинения.

Я предлагаю вам попробовать отменить регистрацию DLL, о которой идет речь. Откройте меню «Пуск», выберите «Все программы - Стандартные», щелкните правой кнопкой мыши командную строку и выберите «Запуск от имени администратора». Затем введите следующую команду:

regsvr32 / u wpdshext.dll

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

Я не пробовал этот метод лично, и отмена регистрации стандартных библиотек DLL Windows может иметь неожиданные последствия. Если что-то пойдет не так, я рекомендую запустить в безопасном режиме и запустить regsvr32 wpdshext.dllв командной строке с повышенными привилегиями.


Отключение расширения оболочки

Этот метод может быть более безопасным, чем отмена регистрации .dll.

  1. Скачать ShellExView

  2. Найдите расширение по имени Portable Devices Menu

  3. Щелкните правой кнопкой мыши> Disable Selected Items

  4. Перезагрузите компьютер (для безопасности)

боб
источник
1
Он не спрашивал, как подключиться в режиме MS, он спрашивал, как отключить подсказку.
Марк
3
@Mark Connecting в режиме Mass Storage - это определенный способ отключить подсказку. Другими словами, он может передавать видео без подсказки, желаемого результата. Это отвечает на вопрос, хотя и за счет других функциональных возможностей / преимуществ MTP. Я упоминал об этом в первоначальном ответе. Тем не менее, я просто нашел источник, в котором упоминалось отключение диалога «Преобразование», в то же время (предположительно) сохраняя другие функции MTP, и добавил это к ответу.
Боб
5
Теперь я могу подтвердить ваш ответ! Как правило, преимущества MTP (главным из которых является то, что рассматриваемое хранилище не нужно сначала отключать от устройства) перевешивают недостатки. Режим MS лучше только тогда, когда требуется абсолютная максимальная скорость.
Марк
3
Я отключил расширение оболочки, но оно также не удаляло приглашение.
Рууд
2
Ни один из этих методов не работает
monstro
5

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

dlgTitle := "Copy"
dlgBtnUnwantedAction := "No, skip this file"
dlgBtnWantedAction := "Yes"
dlgTitleAlt := "Convert and Copy"
dlgBtnUnwantedActionAlt := "Yes, convert and copy (recommended)"
dlgBtnWantedActionAlt := "No, just copy"
dlgBtnCancel := "Cancel"
GroupAdd, dlgTitles, %dlgTitle% ahk_class #32770
GroupAdd, dlgTitles, %dlgTitleAlt% ahk_class #32770

SetTitleMatchMode 3
matchFound := false

Loop
{
    WinWait ahk_group dlgTitles
    matchFound := false

    ControlGetText, button1Text, Button1, ahk_group dlgTitles
    if ( button1Text = dlgBtnUnwantedAction || button1Text = dlgBtnUnwantedActionAlt ) {
        ControlGetText, button2Text, Button2, ahk_group dlgTitles
        if ( button2Text = dlgBtnWantedAction || button2Text = dlgBtnWantedActionAlt ) {
            ControlGetText, button3Text, Button3, ahk_group dlgTitles
            if ( button3Text = dlgBtnCancel ) {
                matchFound := true
            }
        }       
    }

    if ( matchFound ) {
        ControlClick, Button2, ahk_group dlgTitles
    } else {
        WinWaitClose ahk_group dlgTitles
    }
}
moneytoo
источник
1

Спустя годы ... может быть выход. Откройте regedit от имени администратора и отправляйтесь в

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\

Сделайте резервную копию этой "FormatMap".

Далее мы попытаемся обмануть Windows ... По сути, вам придется скопировать содержимое ключей «Format» и «ContentType» из формата в другой.

Попробуйте использовать эти исходные форматы:

.gif, .bmp for images (jpeg, png...) :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.gif]
"Format"="{38070000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{EF2107D5-A52A-4243-A26B-62D4176D7603}"

.wma for audio (mp3,mp4, aac, flac...) :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.wma]
"Format"="{B9010000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"

.wmv for video (avi mp4...) :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.wmv]
"Format"="{B9810000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{9261B03C-3D78-4519-85E3-02C5E1F50BB9}"

.doc, .xls, .ppt for documents or other files :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.doc]
"Format"="{BA830000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{680ADF52-950A-4041-9B41-65E393648155}"

Например, оригинальный ключ для flac

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.flac]
"Format"="{B9060000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"

Поэтому мы просто изменим его на идентификатор WMA:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.flac]
"Format"="{B9010000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"

Мы также можем добавить новые форматы, например .m4a (аудио mp4):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.m4a]
"Format"="{B9010000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"

Однако, это может иметь нежелательные последствия для любого приложения, использующего эти ключи ... Может быть, WMP?

clorydric
источник
Как вы сами сказали, это имеет нежелательные последствия. Определенно. Вы не должны «исправлять» раздражение, делая его технической проблемой.
Я не заметил нежелательных эффектов (пока), но я не использую WMP для прослушивания музыки. Более того, мой телефон не распознается WMP, поэтому я не могу использовать функцию синхронизации. Я обнаружил, что это работает для передачи файлов, но я не проводил дополнительных тестов, и мой компьютер все еще работает нормально. Единственные возможные проблемы, которые я могу себе представить, связаны с WMP или с тем, как Windows анализирует мультимедийные устройства для автозапуска. Иногда нам приходится выбирать между двумя неприятностями ... Какими были ваши?
clorydric
1

Мое решение было просто исправить патч wpdshext.dll

В моей системе (Windows 7 x64, с WMP не установлен) открывается окно подтверждения

long __cdecl CObjectPropertyChecker::_DoesObjectMatchDeviceCapabilities(int)

который возвращает, 0если копия разрешена, в противном случае 1.

Я просто заменил первые несколько байтов функции:

xor rax,rax
ret

так что всегда возвращается 0.

Работает хорошо до сих пор; Я сообщу, если увижу какие-либо неожиданные результаты.


для справки, CRC моего wpdshext.dll был d6ca5ac8, до исправления

и _DoesObjectMatchDeviceCapabilitiesнаходится в RVA0x95118

Cauterite
источник
Спасибо. Какой хороший инструмент для этого? Кроме того, вы могли бы загрузить свой пропатченный файл куда-нибудь?
Денис Хоу
я предлагаю x64dbg, так как вы можете прикрепить к исследователю, перейдите СимволыМодуль «wpdshext.dll» → Скачать символы ... , что делает его легко найти функцию исправления.
Cauterite
-1

Для тех из вас, у кого возникли проблемы с выполнением любого из этих технических предложений (как и я), я нашел обходной путь. Просто создайте новую папку на рабочем столе вашего ПК и скопируйте в нее все файлы, которые вы хотите перенести на ваше устройство. Затем, как только это будет сделано, просто перетащите всю папку на ваше устройство, чтобы скопировать ее как обычно. Появится приглашение, но вы можете просто выбрать «сделать это для всех файлов», и оно будет передаваться по всему содержимому папки без повторного запроса.

Russco
источник