为什么某些默认应用程序关联“锁定”?


13

在使用对话框将我的MP3文件与MPlayer关联后,Open with/Choose default program...我再也无法使用该对话框更改该关联,Always use this [...]此后复选框始终显示为灰色(Control Panel -> Default Programs -> Associate a file type or protocol with a program也不让我更改它,它似乎还是使用相同的对话框)。

MP4文件也发生了这种情况,例如MKV则没有。如果我将MP3文件与其他应用程序(例如VLC媒体播放器)相关联,它也不会被阻止。为什么会这样,我可以事先避免这种情况吗(幸运的是,我已经知道以后要解决的方法了)?

另一个发现:阻止程序(我也设法通过与Visual Studio的关联来阻止它)没有出现在Recommended Programs打开对话对话框中(浏览器说:“不推荐使用当前程序,但我赢了不要让你改变它,哈!”)

屏幕截图:

屏幕截图

如您在左上角看到的(如果您知道MPlayer的图标),该文件当前与MPlayer关联。


修复它的方法(注意:此问题与修复无关):

  1. 使用默认程序

    控制面板 -> 默认程序 -> 设置默认程序,选择WMP选择该程序的默认值,选中.mp3

    这应该将文件与Windows Media Player(WMP)重新关联,并且您可以在Windows Explorer中创建新的关联。

  2. 使用注册表(一如既往,除非您知道自己在做什么或者如果意外中断系统就可以了,请放开手):

    HKEY_CURRENT_USER - > 软件 - > 微软 - > 视窗 - > CURRENTVERSION - > 浏览器 - > FileExts > .MP3

    例如,您可以在此处清理“打开列表”,并且当前的默认程序似乎也保存在key中UserChoice。在那里,您可以将ProgId字符串更改为另一个应用程序,然后可以通过输入WMP11.AssocFile.MP3或立即选择另一个应用程序将其与WMP关联。

    如果您不能更改该ProgId值,则可能需要弄乱密钥的权限。

(由于我现在有三个答案不能回答这个问题:这个问题不是关于使协会再次正常工作。我不喜欢对抗症状,我更喜欢治愈方法。)


您是否尝试过使用Revo卸载MPlayer ?
harrymc

@HB:您的文件名确实具有文件扩展名,对吗?(除了文件名没有扩展名时,我从未见过该复选框显示为灰色。)该复选框的屏幕快照可能会有所帮助。
user541686

2
您为什么要添加问题的答案?删除并将其发布为答案?
昂贵的

2
@PriceChild:问题不是如何改变它,请阅读第二段,因此这些不是答案
HB

1
@Dracs:这不是我的问题,我想知道为什么是这样,而不是如何解决它。
HB

Answers:


4

似乎论坛帖子无法设置文件关联-灰色选项具有答案:

HKEY_CLASSES_ROOT \ Applications \ regedit.exe中,存在一个名为NoOpenWith 的REG_SZ 0值

检查注册表中是否具有此值。

如果是这样,真正的问题是:为什么会有这样的值,以及哪个程序会设置它?


相应的键没有被触摸,即使已经被触摸,这也将是另一种解决方法,这与我在这里所要求的相去甚远,“注册表键X已更改”并不能说明任何问题,它在链的下方太远了事件。
HB

1
这将是理解的关键,因为这意味着特定程序已故意阻止了openwith案例(不仅仅是恶性漏洞)
kamaradclimber 2011年

该程序仅使用Windows本身就不会对这些键进行任何操作,而发生这种情况的原因似乎仍然是个谜……
HB

我有一个类似的问题,但与Outlook,除去NoOpenWithHKEY_CLASSES_ROOT\Applications\Outlook.EXE解决我的问题。
科林

1

MPlayer可能会编辑注册表,更改/创建您之前提到的注册表项(HKEY_CURRENT_USER>软件> Microsoft> Windows> CurrentVersion>资源管理器> FileExts> .mp3)。

在下面,我将有两件事要看(其中有两部分,方法A和方法B) 对于Windows Vista,7或Server 2008

方法一

  1. 在“运行”对话框中键入regedit,然后按Enter。现在转到:

    HKEY_CLASSES_ROOT\Unknown\shell\opendlg\command
    
  2. 在右侧窗格中,将“ Default ”键的值更改为以下内容:

    %SystemRoot%\system32\rundll32.exe
    %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1 %2
    

    注意:我们仅在默认值的最后附加%2。您可以使用2-9之间的任何数字。

  3. 退出注册表编辑器,然后尝试打开“打开方式”对话框。您会发现该复选框现已禁用,如以下屏幕截图所示:

    Open_with_disabled.jpg

方法B

  1. 在“运行”对话框中键入regedit,然后按Enter。现在转到:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    

    如果不存在“资源管理器”键,请手动创建。

  2. 现在在右侧窗格中,创建一个新的DWORD值NoFileAssociate并将其值设置为1

  3. 退出注册表编辑器,然后尝试打开“打开方式”对话框。您会发现该复选框现已完全删除,如以下屏幕截图所示:

    Open_with_invisible.jpg

注意:如您所见,当我们使用方法A禁用复选框时,“打开方式”对话框不会显示推荐的程序列表(使用方法B时会显示该列表)。此外,如果您看到Windows Vista的最后一个屏幕截图,方法B完全删除了该复选框,而不是将其禁用。

奖励提示:本教程也可以反向使用。例如,如果此复选框在Windows中已被禁用,并且您想要启用它,则可以删除方法A中提到的%2或将方法2中提到的DWORD值设置为0

一下2:要防止修改注册表项,您可以限制权限(安装MPlayer后可能需要这样做)。

就是这样:

  1. 导航到要更改的注册表项(然后单击它)。
  2. 单击编辑(在顶部菜单上)。
  3. 单击权限。
  4. 单击高级。
  5. 选择适当的组(例如SYSTEM,ADMINISTRATORS(...)
  6. 单击编辑。
  7. 拒绝“设置值”的权限。
  8. 单击确定...,然后关闭所有刚打开的窗口。

MPlayer是一个“不错”的程序,据我所知,它不会与注册表发生冲突,实际上我所做的只是设置一个关联。因此,我认为这不会以任何方式回答问题,并且我怀疑您应该使用图片上带有其他网站上较大版权水印的图片。
HB

程序更改文件关联的唯一方法是使用注册表。按照我的回答,看看是否可行。
wizlog 2011年

1
好吧,那么Mplayer肯定有一些不同之处……但是我想,如果您知道这一切,那么就不必打扰检查权限了。
Supercereal 2011年

1
@wizlog:我不是在寻求帮助,我是在寻求知识,但是这里的每个人都跳了枪,想通过消除症状来提供帮助。我非常了解这个站点的工作方式,如果您错过了我的问题,我可能会告诉您,并且如果您仍然认为您已经充分回答了问题,那么我无能为力。
HB

1
@wizlog:这是一个问题,它从一开始就存在,但是人们一定没有读过它。我想知道为什么它会锁定,以及可能如何防止它锁定,我不需要修复该锁定本身。
HB

0

看起来有些东西正在锁定注册表项,以防止其被修改。

有几种可能:一个或多个注册表项的权限由当前用户以外的其他人拥有(这可能是在安装过程中设置的);定期运行某些程序来检查和重置权限;或正在积极监控密钥以防止修改。

首先检查密钥的权限,看看是否存在权限问题。您可能必须以管理员身份运行regedit。(开始->在搜索框中输入regedit,然后右键单击并选择“以管理员身份运行”)。可能有些明显的情况,例如您的用户帐户没有写权限。添加适当的权限,然后查看是否可以解决问题。

如果没有,或者重新启动或一段时间后权限消失,则需要更深入地了解。我将从本文开始,安装Process Monitor,并启用启动日志记录。这将告诉您在引导过程中是否设置了密钥。如果是定期重置,则可以在将注册表值手动更改为所需的值之后,捕获进程设置混乱的情况下,使进程监视器继续运行。

与往常一样,在注册表中弄乱时要小心。在进行任何更改之前,请先进行备份,因为这可能会使系统无法使用。


权限应该不是问题,我在锁定之前和之后检查了权限,并且用户帐户从未设置过权限,这似乎是通过系统完成的。此外,我怀疑引导过程中是否发生了任何事情。
HB

过程监视器可能有助于跟踪更改,但是...
HB

1
如果用户帐户无权修改密钥,这就是为什么未启用复选框的原因?如果将用户添加到密钥的权限中,则应将其启用。
克里斯,

正如我所说,即使我可以设置复选框,我的用户帐户也不具有该密钥的设置权限,因此,它与文件关联无关紧要。我的看法是,我告诉系统通过浏览器更改密钥,并且系统可以更改任何密钥。
HB

0

我认为MPlayer搞砸了您有关内容权限的注册表。

“始终使用所选内容”可能会变灰,因为注册表上的权限更改可能需要管理员权限。要验证,请以“以管理员身份运行”命令提示符(cmd),然后输入以下内容:

%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL xxx.mp3

这应该在虚拟mp3文件上打开“选择默认程序”对话框。

现在查看“始终使用所选内容”是否不再灰显。如果是这种情况,那么您的问题得到了回答,这是MPlayer诚实错误的结果(或不是)。


关联是通过系统对话完成的,因此MPlayer(或执行相同操作的Visual Studio)应该与此有关,当以管理员身份调用该命令时,该框也会变灰。如果不是这样,那么它仍然不会解释为什么会发生,因为这完全在Windows手中。
HB

在这种情况下,Windows =注册表。知道MPlayer如何弄乱注册表很高兴,但是在发布这篇文章之后,我不敢安装它。您应该真正右键单击mp3注册表项,并查看在MPlayer安装之前和之后授权了哪些帐户。
harrymc

我在评论中错过了一个“ not”,MPlayer并没有做任何事情,而且对于Microsoft Visual Studio来说,它也发生了,我怀疑这是“可疑程序弄乱了注册表”的情况。就像在其他地方所指出的那样,UserChoice无论我是否可以设置关联,我的帐户都没有设置权限(即,该复选框为灰色)。
HB

在安全模式下启动时,也会发生这种情况吗?如果不是,那么这是由某些启动应用程序引起的,可以找到。
harrymc

-1

让我们尝试一下:

  1. 打开Regedit.exe
  2. 导航到子项HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts

  3. 向下滚动,找到您遇到问题的文件扩展名(.mp3)。

  4. 展开以查看其子项。

  5. 找到一个名为“ UserChoice”的子项并将其删除。

对每个引起您问题的文件扩展名重复步骤3至5

来源:Stack Overflow问题的答案如何在“打开对话框”框中启用“始终使用选定的程序打开这种文件”选项?


2
这仍然不是我要的...
HB
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.