更改文件关联后,Windows 8将丢失“打开方式”菜单中的选项


18

当我将程序设置为默认情况下打开特定文件类型时,它可以工作(例如Word 2013 for PDF文件)。但是,当我将默认值改回阅读器时,我失去了Word作为可以在open with子菜单中选择的选项。

我怎样才能坚持下去?

似乎Word有一些特别之处。将Notepad ++添加为默认值,然后再将其改回似乎会使Notepad ++保留在子菜单中。

Word版本是2013。

如果不清楚,我使用的是RTM版本(不是预览版)。


您是否尝试过通过“默认程序”从控制面板“将文件类型或协议与程序相关联”?
2012年

@avirk假设您的意思是将其设置为默认值,则可以正常工作(但不是问题所在)。更改默认的后退选项可以删除Word
soandos

我认为值得一试。
2012年

您是否检查了值是否已在路径中的注册表中插入 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.docx\OpenWithList。应该有一个与.docx或要检查的扩展名相关联的程序列表。
2012年

@avirk很奇怪。它在那里(chrome也没有出现在列表中),但是没有列出打开它的默认程序(阅读器)
soandos 2012年

Answers:


4

什么是Up!?!

你好。当有人说时,我喜欢它;

“ [...]如何调试它?”

我实际上没有安装Windows 8安装程序,也没有安装Windows 8,因此我将假定与它的前代产品有一些基本的相似之处。在进行假设时,我会尝试提出假设。

发号施令

根据您对问题的描述,我的猜测是系统无法在注册表中记录正确的条目,因此当您在先前执行“ open with ...”之后运行“ open”时,您会看到该应用程序上次选择。

我将引导您解决您的问题,并证明或反对我的最初猜测。如果您不需要下面的所有详细说明,则可以跳过/向下浏览到“侦察”部分,我们将在此处开始尝试发现问题。

快速修复

在我们进行下面介绍的更复杂的步骤之前,您应该首先研究“ 控制面板”中的“ 默认程序”界面。通过“使用...打开”菜单,您可以获得类似的效果,但是您已经说过这对您不起作用。**请确保您正在设置复选框,该复选框指示记住将您的设置作为所选应用程序的默认应用程序。

在“ 控制面板 ”中的“ 默认程序”界面下,可能有一些选项可让您“重置默认值”或恢复为以前的版本。您可以考虑以下各种选项,以查看它们是否可以解决您的问题。首先执行这些操作,因为它们将是最简单的修复程序。如果它们不起作用,则应继续以下选项。


假设条件

这些是我可以预见的假设。如果其中任何一个都不可行,请告诉我,如果需要的话,我将花时间设置Windows 8安装。

注册表

我认为,我所做的最大假设是操作系统仍然使用注册表,并且在我举几个例子的地方,我假设Windows 8中的注册表目录布局/结构也与其以前的版本相似。

命令

就个人而言,我通常更喜欢命令提示符,因此我可能会在终端会话的上下文中描述步骤。我假设Windows 8仍然具有cmd.exe;如果没有的话,我真的会感到惊讶。

注册表编辑器

如果有注册表,则可能有一个查看/编辑注册表的工具。我将假定GUI和命令行工具的名称与以前的名称相同。

用户权限

我将假定以提升的特权调用Shell的方法与OS的前任足够相似,您将知道该怎么做。如果我不在这里,请向我详细说明,我会尽力而为。

SysInternals套件

如果Windows 8中不提供这些功能,我将感到非常失望。我无法相信它们将不可用,因为它们对于开发人员/ 质量检查周期至关重要,因此Microsoft和第三方开发人员都会经历。

WinDbg.exe,DDK和SDK

我假设您尚未安装这些工具。没关系。我们可能不需要这些重型工具就能解决此问题。首先浏览“ 侦察”部分,如果您需要(或只是想)更深入,那么将讨论这些工具。

侦察

始终首先尝试以最简单的方式完成任务。从Windows调试器开始,对于一个起点来说可能会过分杀人,并且发现相关事件的片段/顺序会有些困难。

如果尚未下载并安装SysInternals Suite,则应该立即进行。至少最先需要使用Process ExplorerProcess Monitor来发现问题所在。这两个工具都是该套件的一部分,您可以将其下载为* .zip文件,但是如果网络连接较差,则可以选择单独下载这两个工具以更快地完成安装。

将套件/工具解压缩到系统上的适当位置(主要是您的个人喜好)。如果使用默认的Windows解压缩实用程序,则需要在解压缩存档之前删除区域文件。该区域文件是操作系统如何知道“这个文件是从互联网上下载运行风险自担[...]取消选中框[...] [...]”。我确定您之前在弹出框中看到过类似的消息。弹出式窗口的左下方通常会有一个小复选框,如果您将其切换一次,它将记住您的决定。

查看该复选框的另一种方法是,在下载的文件上右键单击->属性。该复选框应位于“ 常规”选项卡的底部。一次切换该复选框将从二进制文件中删除区域文件(作为一个补充说明,区域文件存储在有问题的二进制文件的备用数据流中-但这是另一个讨论。现在,只需使用弹出窗口或文件属性接口可操作区域文件

确保使用默认的Windows zip工具将区域文件从* .zip存档中删除之前,先将其解压缩。如果您没有将其从* .zip文件中删除,则ZIP实用程序将使用区域文件标记每个解压缩的文件,然后很难获得您在套件中运行的二进制文件的弹出窗口。

我们将首先使用两种工具:* Process Explorer(procexp.exe)* Process Monitor(procmon.exe)

如果您想了解更多关于它们的信息,可以参考相应的* .chm文件。我们将从Process Explorer开始,如果我们不能快速发现问题,那么我们将转到Process Monitor(运行起来要涉及更多一点),如果仍然无法解决问题,我们将进行讨论。关于拔出大枪。但是事实是,我经常在侦察阶段找到需要了解的内容,而无需启动调试器。

背景与理解

注册表是系统存储将文件扩展名与知道如何处理它们的应用程序相关的映射的位置。例如,您可以使用命令行工具ftypeassoc来查看/操作应用程序扩展的映射。

要查看与扩展名“ .txt”关联的文件类型,请从终端执行以下命令。

$> assoc .txt
.txt=txtfile

这表明.txt文件扩展名已分配给文件类型的txtfile类。然后,查看与txtfile类关联的应用程序,执行命令

$> ftype txtfile
txtfile=%SystemRoot%\system32\notepad.exe %1

这些工具只是在读取系统的注册表设置。您可以使用reg.exe之类的工具自己查看它们,您可以从终端上执行它们,或者大多数人更喜欢GUI注册表编辑器regedit.exe。在该位置,您将看到一些扩展名,文件类型类和应用程序关联,只需在HKEY_CLASSES_ROOT配置单元下查找即可。在该配置单元的正下方,您应该找到“ .txt”和“ txtfile”的密钥,当然还有更多。

这是使用assocftype实用程序的更多示例。


确保您正在为assoc提供扩展。我想您已经知道这一点,但是要明确的是文件扩展名是终止文件名的“点后跟3或4个字符”。例如,application.exedocument.txt或presentaion.ppt。该assoc命令实用程序需要你提供的“” 并以3/4个字符作为参数。

$> assoc .exe
.exe=exefile
$> assoc .txt
.txt=txtfile

单独且不同的从文件扩展名存在的文件类型。可以将多个文件扩展名分组为一个文件类型。考虑“ .html”和“ .htm”如何映射到相同的文件类型;即“ htmlfile”。下面的示例试图进一步说明这一点。

$> assoc .html
.exe=htmlfile
$> assoc .htm
.txt=htmlfile
$> ftype htmlfile
htmlfile="C:\Program Files (x86)\Internet Explorer\iexplorer.exe" -nohome

此外,请注意,注册表在HKEY_CLASSES_ROOT配置单元下包含以下项。

  • HKCR.html
  • HKCR.htm
  • HKCR \ html文件

如果您有方便的方法上载/附加/共享txt文件,请运行以下命令,我将查看它们创建的输出。

$> cd \somewhere\easy\for\you\to\find\
$> assoc > extension_associations.txt
$> ftype > filetype_handlers.txt

现在,您应该能够打开将这些文件写入其中的文件夹并共享它们。以下命令也应该打开文件(如果您似乎可以找到创建的文件)。

$> notepad \somewhere\easy\for\you\to\find\extension_associations.txt
$> notepad \somewhere\easy\for\you\to\find\filetype_handlers.txt

如果您无法与我共享整个* .txt文件,则至少运行这两个命令并将其结果放入注释中。

$> assoc .txt
.txt=textfile
$> ftype textfile
textfile="C:\Program Files (x86)\Notepad++\notepad++.exe" "%1"

如果您在此处看不到任何内容,则应先将其设置为某些内容。进行这些更改时,请确保您具有提升的特权(即管理员特权),否则它们可能无法按预期工作。

流程浏览器

如果需要的话

过程监控器

如果需要的话

安装Windows调试环境


三件事:1)感谢您的回答。2)我觉得还有其他事情发生,因为ftype表示与我对其进行的任何扩展都没有关联。3)我要关联的程序是Word 2013,它是服务,而不是本身的exe(或者,如果我不知道它在哪里,任务管理器将显示正在运行的服务)。有什么想法吗?
soandos 2012年

没问题。确保您正在为assoc提供扩展。我想您已经知道这一点,但是要明确的是文件扩展名是终止文件名的“点后跟3或4个字符”。例如application.exedocument.txt或presentaion.ppt。该assoc命令实用程序需要你提供的“” 并以3/4个字符作为参数。$> assoc .exe .exe = exefile $> assoc .txt
GuyHoozdis 2012年

ftype .txt给出“找不到文件类型'.txt'或没有与其关联的打开命令”。例如
soandos

文件扩展名传递给ftype实用程序不正确。花点时间回顾一下,实际上是要做好自我准备,以改善对情况的了解,这些是我在原始帖子的“ UPDATE”中写的示例命令。完成此操作后,问自己一个问题:“ 文件类型文件扩展名之间有什么区别?如果您不知道第二次阅读示例,如果仍然没有意义,那么我们将尝试–一种不同的方法
GuyHoozdis 2012年

Windows没有终端。它有一个命令提示符,命令不像Unix系统那样以$开头。
Elmo 2012年

1

默认程序编辑器可以在Windows 8上编辑“打开方式...”列表:

File Type settings-> Change 'Open with' programs->选择文件类型

默认程序编辑器以列表打开

添加您要“粘贴”的任何程序,然后单击“保存”。

注意:在当前版本中,常规桌面应用程序会显示在此处,因此无法添加/删除Metro应用程序。但是它仍然可以解决您的问题。


您介意在此之前粘贴屏幕截图吗?我找不到此对话框
soandos 2012年

@soandos,它是“文件类型”设置屏幕左下角的超链接
Factor Mystic

我是个白痴,我没有看到下载链接
soandos

如何添加单词2013?它是服务,而不是可执行文件
soandos 2012年

@soandos它仍然安装在您的硬盘上。对我来说,Word安装于C:\Program Files\Microsoft Office 15\root\office15\winword.exe
Factor Mystic

0

使用 -> 选择默认程序进行打开。窗口打开时,取消选中“对所有.pdf文件使用此应用程序,然后选择Word来打开它。如果不在列表中,请使用底部的”在此PC上查找其他应用程序”链接名单。

一旦使用Word打开PDF文件,但不要将其设置为默认程序,则下次使用该文件时,它应显示在“打开方式”上下文菜单中。

在此处输入图片说明


3
没有。多数民众赞成在我的问题。为什么不呢
soandos 2012年

您在使用RTM W8吗?您是否仔细阅读了我的说明?
摩押人

RTM,是的。我将另一个程序设置为默认程序,然后用word打开它,然后查看了“打开”子菜单。仍然不存在(我在谈论即时菜单,而不是在不选中此框的情况下选择“选择默认菜单”
soandos 2012年

不知道出了什么问题,可以在我的Windows 8 RTM上运行。该信息存储在注册表中,而不是MRU条目。
摩押人2012年

知道如何调试吗?
soandos
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.