Disable prompt to convert videos copied to media device
I have a Samsung Galaxy S II, which when connected to my Windows 7 computer acts as a "Portable Media Player"
Whenever I try to copy a video onto the device, it prompts if I want to convert it, like so:
This gets quite annoying in the long run, so I'd like to disable it.
Is there a way to disable these prompts?
Why this happens
That prompt is one of the features Windows implements for devices connected as MTP devices. The most sure way to disable it is to connect your Galaxy SII in USB Mass Storage mode. This way, Windows will detect it as a normal flash drive and will transfer files like any other flash drive without caring about the type. Some (desired) more advanced functionality may be lost, however.
The two basic ways to stop this from happening:
Connect the phone in Mass Storage mode.
-
Disable the shell extension on Windows that handles this. There are two ways to do this:
Unregister the
.dll
.Disable the extension with ShellExView.
Option 1: Changing the phone connection mode
Enabling Mass Storage mode on Galaxy SII ICS (Android 4.x) (source):
- Bring up Settings.
- Click More… (under Wireless and network).
- Then select USB utilities ~ Set USB cable connection mode.
- Select Connect storage to PC then.
- Connect USB cable from phone to PC.
- Select Turn on USB storage. That’s all.
Option 2: Unregistering the .dll
for the Windows shell extension that handles this
If you wish to keep using MTP mode for whatever reason, there has been a thread created on microsoft Answers specifically addressing disabling this prompt. Specifically:
Well, I previously couldn't find references to that dialog in any Windows 7 DLL file, so I thought that it wasn't Windows-related. But I have now looked again and found references to it in wpdshext.dll. So it does appear to be a standard Windows feature, my apologies.
I suggest that you try unregistering the DLL in question. Please open the Start Menu, go to All Programs - Accessories, right-click Command Prompt, and select Run as administrator. Then type the following command:
regsvr32 /u wpdshext.dll
You should probably restart after running the command.
I have not tried this method personally, and unregistering standard Windows DLLs may have unexpected consequences. If anything does go wrong, I recommend you start in Safe Mode and run regsvr32 wpdshext.dll
in an elevated command prompt.
Disabling the shell extension
This method may be safer than unregistering a .dll
.
Download ShellExView
Find the extension named
Portable Devices Menu
Right click >
Disable Selected Items
Restart your computer (to be safe)
As nothing mentioned works for me on Windows 8.1, here's alternative approach using a script in 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
}
}
Years later... there may be a way. Open regedit as administrator and head to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\
Backup this "FormatMap".
Next, we'll try to fool Windows... Basically, you'll have to copy the content of "Format" and "ContentType" keys from a format to another.
Try to use these source formats :
.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}"
e.g., the original key for flac is
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.flac]
"Format"="{B9060000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"
So we'll just change it to WMA's ID:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.flac]
"Format"="{B9010000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"
We could also add new formats, like .m4a (audio mp4) :
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\FormatMap\.m4a]
"Format"="{B9010000-AE6C-4804-98BA-C57B46965FE7}"
"ContentType"="{4AD2C85E-5E2D-45E5-8864-4F229E3C6CF0}"
However, it may have unwanted effects on any app using theses keys... Maybe WMP ?
My solution was to just patch wpdshext.dll
On my system (Windows 7 x64, with WMP not installed) the function that opens the confirmation box is
long __cdecl CObjectPropertyChecker::_DoesObjectMatchDeviceCapabilities(int)
which returns 0
if the copy is allowed, otherwise 1
.
I just replaced the first few bytes of the function with:
xor rax,rax
ret
so it always returns 0
.
Working well so far; I'll report back if I notice any unexpected results.
for reference, the CRC of my wpdshext.dll was d6ca5ac8
, before patching
and _DoesObjectMatchDeviceCapabilities
is at RVA 0x95118