答案1
发生什么事了?!?
你好。我喜欢有人这么说;
“[...]如何调试?”
我实际上没有安装过 Windows 8 系统,也没有使用过 Windows 8 系统,所以我假设它与之前的版本有一些基本的相似之处。我会尽量在做出假设时加以说明。
发号施令
根据你对问题的描述,我的猜测是系统未能在注册表中记录正确的条目这样,当您在执行“打开方式...”之后运行“打开”时,您将看到上次选择的应用程序。
我将引导您解决您的问题并证明或反驳我最初的猜测。如果您不需要我下面的所有冗长内容,您可以跳过/扫描到侦察部分,我们将在那里开始尝试发现问题。
快速修复
在我们进入下面描述的更复杂的步骤之前,你应该首先调查默认程序接口位于控制面板。您可以通过“打开方式...”菜单获得类似的效果,但您已经说过这对您不起作用。**请确保您设置了复选框,该复选框表示记住您的设置作为您选择的任何应用程序的默认应用程序。
在下面默认程序界面中的控制面板您可能会选择“重置默认值”或恢复到以前的版本。您可以考虑这些不同的选项,看看它们是否能解决您的问题。首先执行这些操作,因为它们是最简单的修复方法。如果它们不起作用,那么您应该继续执行下面的选项。
假设
这些都是我预见到的假设。如果其中任何一个假设有误,请告诉我,如果有必要,我会花时间安装 Windows 8。
注册表
我认为我做出的最大假设是操作系统仍然使用注册表,并且对于我给出示例的地方,我假设 Windows 8 中的注册表目录布局/结构也与其前代版本类似。
命令执行程序
就我个人而言,我通常更喜欢命令提示符,因此我可能会在终端会话的上下文中描述步骤。我假设 Windows 8 仍然有命令执行程序;如果没有的话我才会感到非常惊讶。
注册表编辑器
如果有注册表,那么可能就会有查看/编辑注册表的工具。我假设 GUI 和命令行工具的名称与之前的版本相同。
用户权限
我假设以提升的权限调用 shell 的方法与操作系统前身足够相似,因此您会知道该怎么做。如果我在这里说错了,请问我需要详细说明,我会尽力而为。
SysInternals 套件
如果 Windows 8 中没有这些功能,我会非常失望。我无法相信它们不可用,因为它们对开发人员来说是如此重要/质量保证微软和第三方开发商经历的周期。
WinDbg.exe、DDK 和 SDK
我假设您尚未安装这些。没关系。我们可能不需要那些重型工具就可以解决问题。查看侦察部分,如果您需要(或者只是想)深入了解,那么将讨论这些工具。
侦察
总是尝试用最简单的方法完成你的任务。首先Windows 调试器作为起点会有些过度,而且发现相关的事件片段/序列会更加困难。
如果你尚未下载并安装SysInternals 套件,那么你现在就应该这么做。至少你需要进程探索器和进程监控首次尝试找出问题所在。这两个工具都是套件的一部分,您可以将其下载为 *.zip 文件,但如果您的网络连接较差,那么您可以选择单独下载这两个工具以更快地完成。
将套件/工具解压到系统上的适当位置(主要取决于您的个人偏好)。如果您使用的是默认的 Windows 解压实用程序,则需要删除区域文件在解压档案之前。区域文件操作系统就是通过这种方式知道“此文件是从互联网上下载的 [...] 运行风险自负 [...] 取消选中复选框 [...]”。我相信您以前在弹出框中看到过类似的消息。弹出窗口左下角通常会有一个小复选框,如果您切换一次,它将记住您的决定。
查看该复选框的另一种方法是右键单击 -> 属性。该复选框应该位于一般的选项卡。切换该复选框一次将删除区域文件来自二进制文件(顺便提一下,区域文件存储在相关二进制文件的备用数据流中 - 但这是另一个讨论。目前,只需使用弹出窗口或文件属性界面来操作区域文件。
在使用默认的 Windows zip 工具解压 *.zip 存档之前,请确保从其中删除区域文件。如果您没有从 *.zip 文件中删除它,则 ZIP 实用程序将在每个解压的文件上标记一个区域文件然后,当你在套件中运行每个二进制文件时弹出窗口会很麻烦。
我们将从两个工具开始:*进程探索器(procexp.exe)*进程监控(procmon.exe)
如果您想了解更多信息,可以参考相应的 *.chm 文件。我们将从 Process Explorer 开始,如果我们无法快速发现问题,我们将转到 Process Monitor(运行起来稍微复杂一些),如果我们仍然无法解决问题,我们将讨论使用大炮。但事实是,我经常在侦察阶段找到我需要知道的东西,而不需要启动调试器。
背景与理解
注册表是系统存储文件扩展名与知道如何处理它们的应用程序之间的映射的地方。例如,您可以使用命令行工具类型和副教授查看/操作应用程序扩展的映射。
要查看与扩展名“.txt”关联的文件类型,请从终端执行以下命令。
$> assoc .txt
.txt=txtfile
这表明。TXT文件扩展名被分配给文本文件文件类型类别。然后查看与该文本文件类,执行命令
$> ftype txtfile
txtfile=%SystemRoot%\system32\notepad.exe %1
这些工具只是读取系统的注册表设置。您可以使用以下工具自行查看它们注册表编辑器你可以从终端执行它,或者大多数人更喜欢 GUI 注册表编辑器注册表编辑器。在该位置,您将看到一些扩展名、文件类型类别和应用程序关联,您只需在 HKEY_CLASSES_ROOT 配置单元下查找即可。在该配置单元下,您应该直接找到“.txt”和“txtfile”的键,当然还有更多。
以下是使用副教授和类型公用设施。
确保你正在将扩展程序提供给副教授。我想你已经知道了,但要明确文件扩展是“以 3 或 4 个字符结尾的点”,用于终止文件名。例如,应用程序,文档.txt或 presentation.ppt。副教授实用程序期望您提供“。”和 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文件
如果您有方便的方式来上传/附加/共享 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"
如果你没看到任何事物然后你应该开始设置它。确保在进行这些更改时你拥有提升的权限(即管理员权限),否则它们可能不会按你预期的方式工作。
进程探索器
如果需要的话可以做 TODO
进程监控
如果需要的话可以做 TODO
安装 Windows 调试环境
答案2
默认程序编辑器可以在 Windows 8 上编辑‘打开方式...’列表:
File Type settings
-> Change 'Open with' programs
-> 选择文件类型
添加您想要“粘贴”的任何程序,然后单击“保存”。
注意:在当前版本中,常规桌面应用会显示在此处,因此无法添加/删除 Metro 应用。但它仍应能解决您的问题。
答案3
做一个打开用->选择默认程序。当窗口打开时,取消勾选“使用此应用程序打开所有 .pdf 文件,然后选择使用 Word 打开它”。如果它不在列表中,请使用列表底部的“在此电脑上查找其他应用程序”链接。
一旦您使用 Word 打开 PDF 文件,但不要将其设置为默认程序,它应该在下次使用时显示在“打开方式”上下文菜单中。