文件打开关联被改了但是在这里面却不能选择系

作者: 操作系统  发布:2019-09-24

自己动手改下注册表就行 文件打开关联被改了但是在这里面却不能选择系统默认的打开方式 改下注册表就能恢复默认了 开始--运行--regedit 打开注册表 找到键HKEY_CURRENT_USERSOFTWAREMICROSOFTWINDOWSCURRENTVERSIONEXPLORERFILEXTS找到你想恢复的那个文件的后缀删除它下面的UserChoice比如修改.jpg的打开方式 就找到.jpg.. 你是mdf文件的打开关联被修改了 就找到.mdf 删除它下面的UserChoice就行了.

作者:飒飒    文章来源:24CG整录 

如何更改win7下文件的打开方式

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

转自

  文件关联就是当一种类型的文件打开时不是由现有的默认程序打开,而是由其他的程序打开。举个例子来说,位图文件(BMP文件)在Windows的默认打开程序是“画图板”,如果将其关联为Acdsee程序来打开,那么Acdsee就是它的默认打开程序。文件可以利用文件的“打开方式”进行关联,也可以删除误操作的文件关联,新建文件关联,甚至可以在菜单中选择打开文件的不同程序,在有些软件中还可以恢复文件的关联,下面就具体来谈谈文件的关联。

 

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

    利用“打开方式”进行文件关联。用鼠标双击一个没有被关联的文件,桌面上就会弹出一个“打开方式”的窗口,如图1所示。

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

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

图片 1图一

   www.2cto.com  

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

    在这里就可以根据不同文件的打开方式选择合适的“打开方式”的程序了。这里要注意的是如果在下面的“始终使用该程序打开这种文件”前打勾,这类文件就会默认为选中的那种程序始终打开。要关联一个已经被关联的文件,可以用鼠标右键单击要这个文件的同时按住Shift键不放,这样在弹出的菜单中就会出现一个“打开方式”的选项,选中这一项也会弹出来“打开方式”的窗口,同样可以选择其中的一个程序作为它的默认打开方式。

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

  assoc命令

    删除误操作的文件关联选项。通过上面的方法可以关联文件的默认“打开方式”,有时候我们可能会误把图片类文件当作文本文件用“记事本”程序打开,那么在这类图片文件的“打开方式”的菜单中就会出现“记事本”一项,非常讨厌。其实通过修改注册表可以删除误操作的文件关联。打开注册表(“运行”中键入regedit后回车),找到HKEYhtml#" target=_blank>_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts子键,再选择要修改的“打开方式”菜单的扩展名的子项,然后选择该子项中的子项“OpenwillList”,删除右侧窗口中误编辑的程序的键值后,重新启动电脑就可以了。

 

  要修改扩展名与文件类型的关联,我们需要用到一个命令:assoc

    新建文件关联。文件关联是可以自己新建的,首先打开Windows的“资源管理器”,然后依次打开菜单中的“查看”→“文件夹选项”→“文件类型”,在其中单击“新建”(如图2),可以打开“添加新文件类型”窗口,

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

  点开始,搜索,输入cmd,打开cmd,在cmd中输入:assoc /? 回车。我们可以得到关于这个命令的帮助。

图片 2图二

 

  assoc命令的作用有两个,一是显示扩展名与文件类型的关联,一是改写扩展名与文件类型的关联。

    在这里可以编辑新的文件类型,假定我们要编辑扩展名为AAA的文件用“记事本”程序打开,就可以在“相关扩展名”中输入“AAA”,点击“更改图标”按钮,可以选择自己喜欢的显示图标(如图3)。

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

  让我们以快捷方式的关联为例来讲述这个问题。

图片 3图三

 

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

    因为是新建的文件类型,“操作”栏中没有任何编辑打开的程序,点击“新建”按钮就可以进行程序打开的编辑。如图4所示,会弹出一个“新操作”窗口,

assoc命令

  我们在cmd中输入:assoc .lnk ,回车后我们可以得到的命令结果是: .lnk=lnkfile 。这个命令结果显示了:扩展名.lnk与文件类型lnkfile是相关联的。凡是扩展名为.lnk的文件,都属于lnkfile这个文件类型。

图片 4图四

要修改扩展名与文件类型的关联,我们需要用到一个命令:assoc

  现在让我们输入命令: assoc .lnk=lnk ,按下回车键,lnk这个扩展名与文件类型的关联就被改写了。然后我们再输入命令: assoc .lnk ,按下回车键,我们得到的命令结果将是: .lnk=lnk ,这个结果显示了,扩展名.lnk已经是与文件类型lnk相关联,而不再是与lnkfile相关联。

    在“操作”栏中输入open,为默认的打开命令,在“用于执行操作的应用程序”栏中输入打开程序的路径,也可以在“浏览”中进行选择(这里编辑的使用“记事本”程序打开)。好了,新建一个扩展名为AAA的文件看看,是不是可以用“记事本”打开了(如图5所示)?

 

  这个时候你去桌面上去看一下吧,你桌面上所有的快捷方式的后缀名.lnk全部显示出来了,所有的快捷方式都不再可用。双击时会提示:windows无法打开此文件。

图片 5图五

点开始,搜索,输入cmd,打开cmd,在cmd中输入:assoc /?

  现在再让我们输入: assoc .lnk=lnkfile ,按下回车键,我们将会发现,一切又恢复了原状。

编辑右键菜单中的不同文件关联。右键菜单中的不同文件关联是当用鼠标右键单击某个文件时,在右键菜单中会形成多个不同的打开该文件的程序选项,这样可以根据不同需要选择不同的打开方式进行浏览。其方法与“新建文件关联”的方法类似。这里以编辑HTML文件的右键菜单来讲解一下编辑右键菜单中的不同文件关联的方法。还是要先打开“文件类型”(Windows的“资源管理器”→“查看”→“文件夹选项”→“文件类型”),在其中的“已注册的文件类型”中选定“HTML Document”,再单击右侧的“编辑”,选择“新建”,在“新操作”窗口的“操作”栏中可以输入右键菜单打开该文件的程序名,如Microsoft FrontPage,同样在“用于执行操作的应用程序”栏中输入程序所在的具体路径,如"C:Program FilesMicrosoft OfficeOfficeFrontpg.exe",输入无误后单击“确定”后返回。这样就完成了一个打开程序的编辑,也就是说当右键单击一个HTML文件时,右键菜单中就会出现带有Microsoft FrontPage字样的打开程序,单击即可利用它打开。可以利用同样方法将Dreamweaver XM和“记事本”等程序也加进去,现在再看看右键菜单,其中是不是多了好几项不同的打开程序,如图6所示,这样就可以方便快捷的选择适合我们的打开程序了。

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

  总之,如果是快捷方式的扩展名与文件类型之间的关联出现了问题,我们只需要输入: assoc .lnk=lnkfile,回车后即可以解决问题。

图片 6图六

 

  这样,如果我们知道一种扩展名所属的正确的文件类型,当这种扩展名与文件类型之间的关联出现问题的时候,我们只需要输入: assoc .ext=filetype ,按下回车键即可。 这个.ext代表的是文件扩展名,比如.lnk,这个filetype代表的是文件类型,比如lnkfile。如果我们不知道一种扩展名所关联的文件类型是什么,我们只需要在cmd中输入:assoc .ext回车。我们就能得到它所关联的文件类型是什么。

    恢复常用软件的文件关联。你可能会遇到这样的情况,当安装了一个新软件后,原来熟悉的文件图标突然改变了,打开的程序也不是原来的软件了。这里列举三个软件来说说如何恢复常用软件的文件关联。
    1 Acdsee4.0。打开“工具”菜单上的“文件关联”,会弹出一个“ACDSee集成环境”窗口(图7),在“图象文件”栏中可以恢复常用的图象文件的Acdsee关联。

assoc命令的作用有两个,一是显示扩展名与文件类型的关联,一是改写扩展
名与文件类型的关联。  www.2cto.com  

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

图片 7图七

 

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

    
    2 Winamp2.77。在Winamp上单击鼠标右键,依次选择“选项”→“参数选择”→“文件类型”,在“文件类型设置”(图8)中可以恢复音乐文件的Winamp关联。

让我们以快捷方式的关联为例来讲述这个问题。

  ftype命令

图片 8图八

 

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

    
    3 Winzip8.1。依次选择“选项”→“配制”→“系统”→“关联”,会弹出一个“Winzip关联窗口”(图9),在这里可以恢复压缩文件的Winzip关联。

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

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

图片 9图九

 

  让我们在cmd中输入: ftype /? 回车。我们可以得到这个命令的帮助。  

文章来源:24CG整录 文件关联就是当一种类型的文件打开时不是由现有的默认程序打开,而是由其他的程序打开。举个例子来说...

我们在cmd中输入:assoc .lnk

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

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

  如果我们想知道一种文件类型与什么样的开放式命令相关联,我们只需要在cmd中输入: ftype fileType ,按下回车键,我们就能够得到我们想要得到的结果。

.lnk=lnkfile

  这个fileType代表的是指定的文件类型,比如lnkfile,我们输入:ftype lnkfile ,按下回车键,正常情形下我们得到的命令结果是: 没有找到文件类型“lnkfile”或者与其相关的开放式命令,这个结果表明正常的情形下,lnkfile是没有与任何开放式命令相关联的。

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

  让我们输入:ftype lnkfile=notepad.exe ,按下回车键,再输入:ftype lnkfile ,按下回车键,我们将得到的命令结果是: lnkfile=notepad.exe 这个结果表明了:文件类型lnkfile就与开放式命令notepad.exe关联上了。

 

  这种情形下,仍然并不会影响快捷方式的打开。 那么,如何来清除这个关联,并且不与其它的开放式命令关联呢?我们只要输入: ftype lnkfile= ,然后回车即可。

现在让我们输入命令:

  在xp下,这个命令无效,但是,我们可以在xp下输入:ftype lnkfile= ,按下回车键,这个命令与前一个命令在外表上几乎看不出区别,区别就在于,前一个命令在=后面没有空格,而后一个命令在=后有一个空格。

assoc .lnk=lnk

  让我们输入:ftype txtfile ,按下回车键,正常情形下,我们可以得到的命令结果是: txtfile="%SystemRoot%system32NOTEPAD.EXE" %1 ,这个结果表明了:文件类型txtfile与开放式命令txtfile="%SystemRoot%system32NOTEPAD.EXE" %1相关联。

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

  如果一种文件类型与开放式命令之间的关联出现了问题,而我们知道正确的开放式命令是什么,这时我们只需要在cmd中输入如下命令并回车即可修复: ftype fileType=openCommandString ,这里fileType代表的是指定的文件类型,比如txtfile,这里openCommandString代表的是开放式命令,比如notepad.exe

assoc .lnk

  如果我们的txtfile与开放式命令之间的关联出了问题,我们只需要在cmd中输入: ftype txtfile="%SystemRoot%system32NOTEPAD.EXE" %1 ,按下回车键,这样我们也就修复了txtfile文件类型与它的开放式命令之间的关联。

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

  所谓开放式命令,其实就是对这种文件类型的打开方式。每一种注册了的文件类型,在注册表中都会存在着它的一个对应的注册表项,这个注册表项就是: HKEY_CLASSES_ROOTfiletype ,这个filetype代表的是文件类型,比如batfile文件类型所对应的注册表项就是: HKEY_CLASSES_ROOTbatfile ,ftype命令所修改的注册表项主要就是---HKEY_CLASSES_ROOTfiletypeshellopencommand---这个项的默认值的数据。

.lnk=lnk

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

这个结果显示了,扩展名.lnk已经是与文件类型lnk相关联,而不再是与lnkfile相关联。

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

 

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

这个时候你去桌面上去看一下吧,你桌面上所有的快捷方式的后缀名.lnk全部显
示出来了,所有的快捷方式都不再可用。双击时会提示:windows无法打开此文件。

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

 

  我们发现,ftype命令和右键打开方式,这二者所修改的注册表项是不同的。Ftype命令所修改的注册表项是: HKEY_CLASSES_ROOTfiletype ,这个filetype代表的是文件类型,比如HKEY_CLASSES_ROOTlnkfile ,而右键打开方式所修改的主要注册表项是: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.ext ,这个.ext代表的是文件扩展名,比如: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.lnk ,按照我的理解,ftype命令所修改的内容属于系统设置,而右键打开方式所修改的内容则属于用户设置,这二者所设置的实际对象是一样的,当二者不一致的时候,用户设置优先于系统设置。

现在再让我们输入:

  三个注册表项

assoc .lnk=lnkfile

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

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

  HKEY_CLASSES_ROOT.ext

 

  HKEY_CLASSES_ROOTfiletype
    HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.ext

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

  问题解决

assoc .lnk=lnkfile

  现在要回到我们在开头所说到的问题了。我教那位朋友首先输入:assoc .lnk ,返回的命令结果是: .lnk=lnkfile 中,这表明,扩展名.lnk与文件类型lnkfile之间的关联没有问题。 我再要他输入:ftype lnkfile ,返回的命令结果是:没有找到文件类型“lnkfile”或者与其相关的开放式命令,而这个结果是正常的,这表明,系统设置中的lnkfile与开放式命令之间的关联也没有问题。

 

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

回车后即可以解决问题。

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

 

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

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

  在删除后,重启电脑,或者重启explorer,问题完美得到解决。 除了这种解决办法,其它的解决办法暂时没有找到。

assoc .ext=filetype

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

回车即可。

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

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

   www.2cto.com  

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

HKEY_CLASSES_ROOT.ext

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

HKEY_CLASSES_ROOT.lnk

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

 

fytpe命令

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

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

   www.2cto.com  

让我们在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%system32
NOTEPAD.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命令的设置。

  www.2cto.com  

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

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

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion
ExplorerFileExts.lnkUserChoice

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

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

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

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

 

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

一位朋友紧急求助:系统是windows7,这位朋友因为桌面没有OFFICE图标,又急着要用WORD, 就把一个桌面图标右击,...

本文由9159.com发布于操作系统,转载请注明出处:文件打开关联被改了但是在这里面却不能选择系

关键词:

上一篇:没有了
下一篇:没有了