我有一个Samsung Galaxy S II,当连接到Windows 7计算机时,它可以充当“便携式媒体播放器”
每当我尝试将视频复制到设备上时,它都会提示我是否要对其进行转换,如下所示:
从长远来看,这很烦人,所以我想禁用它。
有没有办法禁用这些提示?
我有一个Samsung Galaxy S II,当连接到Windows 7计算机时,它可以充当“便携式媒体播放器”
每当我尝试将视频复制到设备上时,它都会提示我是否要对其进行转换,如下所示:
从长远来看,这很烦人,所以我想禁用它。
有没有办法禁用这些提示?
Answers:
该提示是Windows为作为MTP设备连接的设备实现的功能之一。禁用它的最确定方法是在USB Mass Storage模式下连接Galaxy SII。这样,Windows会将其检测为普通闪存驱动器,并且将像其他任何闪存驱动器一样传输文件,而无需关心该类型。但是,某些(所需)更高级的功能可能会丢失。
阻止这种情况发生的两种基本方法:
在大容量存储模式下连接手机。
在处理此问题的Windows上禁用外壳扩展。有两种方法可以做到这一点:
取消注册.dll
。
使用ShellExView禁用扩展。
在Galaxy SII ICS(Android 4.x)上启用大容量存储模式(源):
- 调出设置。
- 单击更多…(在无线和网络下)。
- 然后选择USB实用程序〜设置USB电缆连接模式。
- 然后选择将存储设备连接到PC。
- 将USB电缆从手机连接到PC。
- 选择打开USB存储器。就这样。
.dll
处理此问题的Windows Shell扩展如果出于任何原因希望继续使用MTP模式,则在Microsoft Answers上专门创建了一个线程来解决禁用此提示的问题。特别:
好吧,我以前在任何Windows 7 DLL文件中都找不到该对话框的引用,所以我认为它与Windows无关。但是我现在再次查找,并在wpdshext.dll中找到对其的引用。抱歉,这确实是Windows的标准功能。
我建议您尝试注销有问题的DLL。请打开“开始”菜单,转到“所有程序-附件”,右键单击“命令提示符”,然后选择“以管理员身份运行”。然后键入以下命令:
regsvr32 / u wpdshext.dll
您可能应该在运行命令后重新启动。
我没有亲自尝试过此方法,并且注销标准Windows DLL可能会产生意外的后果。如果有任何问题,建议您以安全模式启动并regsvr32 wpdshext.dll
在提升的命令提示符下运行。
此方法可能比取消注册更安全.dll
。
查找名为 Portable Devices Menu
右键点击> Disable Selected Items
重新启动计算机(为了安全起见)
由于在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
}
}
几年后...可能有办法。以管理员身份打开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的ID:
[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?
我的解决方案是仅修补wpdshext.dll
在我的系统(Windows 7 x64,未安装WMP)上,打开确认框的功能是
long __cdecl CObjectPropertyChecker::_DoesObjectMatchDeviceCapabilities(int)
0
如果允许复制,则返回,否则返回1
。
我只是将函数的前几个字节替换为:
xor rax,rax
ret
因此它总是返回0
。
到目前为止工作良好;如果发现任何意外结果,我会报告。
供参考,我的wpdshext.dll的CRC 是d6ca5ac8
,在修补之前
并且_DoesObjectMatchDeviceCapabilities
在RVA0x95118
Applications
>Development
>USB debugging
。