欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Word文档的更改怎么设置
Word 2003如何调用虚拟键盘编写特殊符号
金山卫士的悬浮窗不显示的方法
防止PPTV网络电视偷跑P2P流量的方法
win7系中统电脑死机怎么解决
如何在Word 2013中给常用符号创建快捷键
Word文档中删除末尾多出的空白页的方法
输入法无法切换怎么办?
Word 2003文档的页边距怎么调整
PPTV网络电视手机端关闭自动播放下一集功能的方法
如何更改win7文件的打开方式
【 来源:网络 】【 点击:5 】 【 发布时间:2017_03_03 08:59:59 】

  一位朋友紧急求助:系统是windows7,这位朋友因为桌面没有OFFICE图标,又急着要用WORD,就把一个桌面图标右击,选择打开方式中选择了word,而且没有把“始终使用这种程序打开同类型文件”前的勾去掉。这一改之后,结果所有的快捷方式全变成了word文档了。可以再改成别的,比如再改为记事本方式打开,但就是没有办法恢复原状。

  这是一个文件关联的问题。这样的问题在xp下根本就不可能发生,看来这个具体问题是win7下的新问题。网上大致搜了一下,发现出现这样问题的决不只是这位朋友,看来有解决的必要。

  为了解决这个问题,我们需要先谈一下文件关联的一些基本的知识,这样才能使朋友们做到知其然而知其所以然。

  文件关联,主要的是把文件类型与开放式命令关联起来。而windows是通过文件的扩展名来识别文件类型的,这就首先需要把扩展名与文件类型关联起来。

  assoc命令

  要修改扩展名与文件类型的关联,我们需要用到一个命令:assoc点开始,搜索,输入cmd,打开cmd,在cmd中输入:assoc /?回车。我们可以得到关于这个命令的帮助。

  assoc命令的作用有两个,一是显示扩展名与文件类型的关联,一是改写扩展名与文件类型的关联。 让我们以快捷方式的关联为例来讲述这个问题。

  快捷方式的扩展名是.lnk,在windows下,这个扩展名一般是不会显现出来的,如果出现了,必是它的文件关联出问题了。

  我们在cmd中输入:assoc .lnk回车,我们可以得到的命令结果是:.lnk=lnkfile

  这个命令结果显示了:扩展名.lnk与文件类型lnkfile是相关联的。凡是扩展名为.lnk的文件,都属于lnkfile这个文件类型。

  现在让我们输入命令:

  assoc .lnk=lnk回车。.lnk这个扩展名与文件类型的关联就被改写了。然后我们再输入命令:

  assoc .lnk

  回车。我们得到的命令结果将是:

  .lnk=lnk

  这个结果显示了,扩展名.lnk已经是与文件类型lnk相关联,而不再是与lnkfile相关联。这个时候你去桌面上去看一下吧,你桌面上所有的快捷方式的后缀名.lnk全部显示出来了,所有的快捷方式都不再可用。双击时会提示:windows无法打开此文件。

  现在再让我们输入:

  assoc .lnk=lnkfile

  回车。我们将会发现,一切又恢复了原状。

  总之,如果是快捷方式的扩展名与文件类型之间的关联出现了问题,我们只需要输入:

  assoc .lnk=lnkfile

  回车后即可以解决问题。

  这样,如果我们知道一种扩展名所属的正确的文件类型,当这种扩展名与文件类型之间的关联出现问题的时候,我们只需要输入:

  assoc .ext=filetype

  回车即可。

  这个.ext代表的是文件扩展名,比如.lnk,这个filetype代表的是文件类型,比如lnkfile。如果我们不知道一种扩展名所关联的文件类型是什么,我们只需要在cmd中输入:assoc .ext回车。我们就能得到它所关联的文件类型是什么。

  每一个注册了的扩展名都会在注册表中存在着一个对应的注册表项:

  HKEY_CLASSES_ROOT.ext

  这里的.ext代表的是扩展名,比如快捷方式对应的项就是:

  HKEY_CLASSES_ROOT.lnk

  这个项有一个默认的值,这个默认的值的数据,就是这个快捷方式所关联的文件类型。因而assoc命令,主要的就是修改这个项的默认值的数据。但需要注意的是,assoc命令所修改的内容,并不仅仅是这个项的默认值的数据,它还会要修改其它的一些方面。所以我们直接在注册表中改这个值的数据,并不能完全代替assoc命令。

  fytpe命令

  我们现在知道了如何把扩展名与文件类型关联起来了,进一步地需要知道的是如何把文件类型与开放式命令关联起来。比如.txt扩展名所关联的文件类型是txtfile,而txtfile正常的情形下,总是用notepad.exe(记事本)来打开的,这个notepad.exe就是打开txtfile文件类型的开放式命令。

  如何来修改这种文件类型与开放式命令之间的关联呢?这需要用到另外的一个重要的命令:ftype

  让我们在cmd中输入:

  ftype /?

  回车。我们可以得到这个命令的帮助。

  ftype命令有两个作用,一是显示文件类型与开放式命令之间的关联,一是改写文件类型与开放式命令之间的关联。

  如果我们想知道一种文件类型与什么样的开放式命令相关联,我们只需要在cmd中输入:

  ftype fileType

  回车。我们就能够得到我们想要得到的结果。这个fileType代表的是指定的文件类型,比如lnkfile

  让我们输入:ftype lnkfile

  回车。正常情形下我们得到的命令结果是:没有找到文件类型“lnkfile”或者与其相关的开放式命令这个结果表明了,正常的情形下,lnkfile是没有与任何开放式命令相关联的。

  让我们输入:ftype lnkfile=notepad.exe

  回车。让我们再输入:

  ftype lnkfile

  回车,我们将得到的命令结果是:

  lnkfile=notepad.exe

  这个结果表明了:文件类型lnkfile就与开放式命令notepad.exe关联上了。

  这种情形下,仍然并不会影响快捷方式的打开。

  那么,如何来清除这个关联,并且不与其它的开放式命令关联呢?我们只要输入:

  ftype lnkfile=

  回车即可。在xp下,这个命令无效,但是,我们可以在xp下输入:

  ftype lnkfile=

  回车。这个命令与前一个命令在外表上几乎看不出分别,分别就在于,前一个命令在=后面没有空格,而后一个命令在=后有一个空格。

  让我们输入:

  ftype txtfile

  回车。正常情形下,我们可以得到的命令结果是:

  txtfile="%SystemRoot%system32NOTEPAD.EXE" %1

  这个结果表明了:文件类型txtfile与开放式命令txtfile="%SystemRoot%system32NOTEPAD.EXE" %1相关联。

  如果一种文件类型与开放式命令之间的关联出现了问题,而我们知道正确的开放式命令是什么,这时我们只需要在cmd中输入如下命令并回车即可修复:

  ftype fileType=openCommandString

  这里fileType代表的是指定的文件类型,比如txtfile,这里openCommandString代表的是开放式命令,比如notepad.exe

  如果我们的txtfile与开放式命令之间的关联出了问题,我们只需要在cmd中输入:

  ftype txtfile="%SystemRoot%system32NOTEPAD.EXE" %1

  回车。这样,我们也就修复了txtfile文件类型与它的开放式命令之间的关联。

  所谓开放式命令,其实就是对这种文件类型的打开方式。

  每一种注册了的文件类型,在注册表中都会存在着它的一个对应的注册表项,

  这个注册表项就是:

  HKEY_CLASSES_ROOTfiletype

  这个filetype代表的是文件类型,比如batfile文件类型所对应的注册表项就是:

  HKEY_CLASSES_ROOTbatfile

  ftype命令所修改的注册表项主要就是---HKEY_CLASSES_ROOTfiletypeshell

  opencommand---这个项的默认值的数据。

  但需要注意的是,ftype命令所修改的并不仅仅是这个默认值的数据。因而直接在注册表中修改这个数据,并不能代替ftype命令的修改。

  当然,ftype命令所修改的全部的东西都可以在注册表中找到,但是,我们那样一一地去找,远不如用ftype命令简单修改来得爽。

  右键打开方式

  前面我们谈到了扩展名与文件类型的关联,文件类型与开放式命令的关联(也就是文件的打开方式),看起来好象我们关于文件关联的问题就谈完了,

  实则不然,还有另外的一个重要的方面我们没有谈到。这就是我们右击一个文件,选择打开方式(并不是所有文件右键都有打开方式这个选项的),然后我们选择一个程序,并把“始终使用这种程序打开同类型文件”前的勾选上,点确认。比如本文开头的那位朋友,把所有快捷方式都选择以word程序打开一样。这样之后,这个文件类型也就与这个开放式命令关联起来了。

  ftype命令是修改文件类型与开放式命令的关联的,而右键打开方式也可以修改文件类型与开放式命令的关联,这二者的关系是什么呢?

  我们发现,ftype命令和右键打开方式,这二者所修改的注册表项是不同的。Ftype命令所修改的注册表项是:

  HKEY_CLASSES_ROOTfiletype

  这个filetype代表的是文件类型,比如HKEY_CLASSES_ROOTlnkfile

  而右键打开方式所修改的主要注册表项是:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.ext

  这个.ext代表的是文件扩展名,比如:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.lnk

  按照我的理解,ftype命令所修改的内容属于系统设置,而右键打开方式所修改的内容则属于用户设置,这二者所设置的实际对象是一样的,当二者不一致的时候,用户设置优先于系统设置。

  三个注册表项

  总之,文件关联所涉及到的注册表项主要是三个:

  HKEY_CLASSES_ROOT.ext

  HKEY_CLASSES_ROOTfiletype

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.ext

  问题解决

  现在要回到我们在开头所说到的问题了。

  我教那位朋友首先输入:

  assoc .lnk

  返回的命令结果是:

  .lnk=lnkfile

  这表明,扩展名.lnk与文件类型lnkfile之间的关联没有问题。

  我再要他输入:

  ftype lnkfile

  返回的命令结果是:

  没有找到文件类型“lnkfile”或者与其相关的开放式命令而这个结果是正常的,这表明,系统设置中的lnkfile与开放式命令之间的关联也没有问题。

  那么,问题只能出在用户设置中的lnkfile与开放式命令之间的关联出现了问题。一般的情形下,右键打开方式的设置优先于ftype命令对文件关联的设置,这在xp和win7下都是一样的,但对于扩展名为.lnk的快捷方式,二者却具有不同。在win7下,即便是对于.lnk快捷方式,也是右键打开方式的设置优先于ftype命令的设置。

  找到了问题所在,我们就可以知道,对于这种快捷方式的文件关联错误,我们用assoc和ftype命令都是无法解决的。解决的办法就是:

  在注册表中右键删除下面这个注册表项:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.lnkUserChoice

  这个注册表项下的值和数据(具体就是名为progid的值和它的数据),是对应右键打开方式所设置的默认打开程序的。

  在删除后,重启电脑,或者重启explorer,问题完美得到解决。

  除了这种解决办法,其它的解决办法暂时没有找到。

  顺便说一下,在XP下,UserChoice这个注册表项是没有的。

  由于一些文件右键没有打开方式选项,在xp下,我们可以在我的电脑里面点工具----查看----文件夹选项---文件类型,这里我们可以进行同样的设置,而在win7下,我们可以在----控制面板---程序---默认程序----始终使用指定的程序打开此文类型---里面进行设置,xp下设置的可选项要多得多,而win7下则的设置则极为简明。限于篇幅,具体的设置就不讲了。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站