更改Windows 7系统文件打开方式的方法

更改Windows 7系统文件打开方式的方法

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

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和Windows 7下都是一样的,但对于扩展名为.lnk的快捷方式,二者却具有不同。在Windows 7下,即便是对于.lnk快捷方式,也是右键打开方式的设置优先于ftype命令的设置。

 

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

 

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

 

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

 

  ExplorerFileExts.lnkUserChoice

 

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

 

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

 

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

 

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

 

更改Windows 7系统文件打开方式的方法

相关文章:

你感兴趣的文章:

标签云: