34

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

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

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

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

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

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

5 ответов5

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. Перезагрузите компьютер (для безопасности)

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
    }
}
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?

1

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

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

long __cdecl CObjectPropertyChecker::_DoesObjectMatchDeviceCapabilities(int)

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

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

xor rax,rax
ret

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

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


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

и _DoesObjectMatchDeviceCapabilities находится в RVA 0x95118

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .