最近文章更新
- 1966年生产的广州 珠江 SB6-2型 ..
- HD6870/6850全面评测,让你大饱眼..
- 百万现金刚入门 中国7大奢华私人..
- 罕见4G希捷酷鱼系类万转SCSI服务..
- IBM 6x86MX PR333 CPU
- 采用MC68000 CPU的进口老计算机主..
- 1989年IBM-XT机软驱
- BC3型饱和标准电池拆解
- JUKO ST
- Kingston 品牌的CPU
- YAMAHA 719
- intel 30线 内存条
- intel mmx cpu和主板
- 首款xHCI 1.0正式版标准USB 3.0控..
- 《极品飞车:地下狂飙》纹理MOD视..
- USB接口加扩展子卡:影驰神秘GTX..
- 阿里巴巴将发布浏览器 核心不是W..
- 黄仁勋大秀NVIDIA LOGO纹身
- Google Earth上的奇特卫星图片
- 开火!讯景限量版HD 5970详细测试..
相关文章链接
本类文章排行
- 没有光驱也一样安装Windows 7系统..
- 挖掘Windows7隐藏屏保 将桌面变得..
- Windows 7 NVIDIA Edition 2010 ..
- 使用Windows7 BitLocker加密功能
- Windows 7防毒理念之“纵深防御”..
- XP系统开始菜单的右键被禁止的修..
- Windows7系统速度慢 或是颜色校正..
- 挖Windows 7潜能 解IE8主页被修改..
- 用上Windows 7 Ghost可以安心“退..
- Windows7常见问题 系统故障最突出..
- XP系统涌现“内存不能为read”毛..
- Windows XP下用命令找回丢失的系..
- Vista系统开始菜单命令提示
最新新闻资讯
本周下载排行
- ArcSoft TotalMedia Theatre 3 P..
- Windows 7 Build 7600 16385 RTM..
- 《姗姗来迟软件光盘+飞扬PE工具箱..
- MSDN Windows 7 RTL 7600 Ultima..
- Windows 7 Home Premium (x86) -..
- Windows Virtual PC (x86) - (Mu..
- MSDN Windows 7 Language Pack X..
- Windows 7 Language Pack (x64) ..
- Windows 7 Starter (x86) - DVD ..
- Windows 7 Professional (x86) -..
- Windows 7 Language Pack (x86) ..
- Windows 7 Home Premium (x64) -..
- Windows XP Mode (x86, x64) - (..
- 7127.0.090507-1820_x86fre_clie..
- DMG2ISO
本月下载排行
- ArcSoft TotalMedia Theatre 3 P..
- Windows 7 Build 7600 16385 RTM..
- 《姗姗来迟软件光盘+飞扬PE工具箱..
- MSDN Windows 7 RTL 7600 Ultima..
- MSDN Windows 7 Language Pack X..
- Windows 7 Home Premium (x86) -..
- Windows 7 Language Pack (x64) ..
- Windows 7 Professional (x86) -..
- 7127.0.090507-1820_x86fre_clie..
- Windows 7 Professional (x64) -..
- Windows 7 Starter (x86) - DVD ..
- Windows Virtual PC (x86) - (Mu..
- Windows 7 Ultimate (x64) - DVD..
- Lenovo Windows 7 Ultimate OEM ..
- Windows 7 Home Premium (x64) -..
- 阅览次数: 文章来源: 原文作者: 整理日期: 2010-07-06
玩转Windows 7的文件关联
玩转Windows 7的文件关联
起来了,进一步地需要知道的是如何把文件类型与开放式命令关联起来。比如.txt扩展名所关联的文件类型是txtfile,而txtfile正常的情形下,总是用notepad.exe(记事本)来打开的,这个notepad.exe就是打开txtfile文件类型的开放式命令。
如何来修改这种文件类型与开放式命令之间的关联呢?这需要用到另外的一个重要的命令:ftype
让我们在cmd中输入:
ftype /? 回车。我们可以得到这个命令的帮助。
ftype命令有两个作用,一是显示文件类型与开放式命令之间的关联,一是改写文件类型与开放式命令之间的关联。
如果我们想知道一种文件类型与什么样的开放式命令相关联,我们只需要在cmd中输入:
ftype fileType
回车。我们就能够得到我们想要得到的结果。这个fileType代表的是指定的文件类型,比如lnkfile
让我们输入:ftype lnkfile
回车。正常情形下我们得到的命令结果是:
没有找到文件类型“lnkfile”或者与其相关的开放式命令
回车。让我们再输入:
ftype lnkfile
回车,我们将得到的命令结果是:
lnkfile=notepad.exe
这个结果表明了:文件类型lnkfile就与开放式命令notepad.exe关联上了。
这种情形下,仍然并不会影响快捷方式的打开。
那么,如何来清除这个关联,并且不与其它的开放式命令关联呢?我们只要输入:
ftype lnkfile=
回车即可。在xp下,这个命令无效,但是,我们可以在xp下输入:
ftype lnkfile=
回车。这个命令与前一个命令在外表上几乎看不出分别,分别就在于,前一个命令在=后面没有空格,而后一个命令在=后有一个空格。
让我们输入:
ftype txtfile
回车。正常情形下,我们可以得到的命令结果是:
txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1
这个结果表明了:文件类型txtfile与开放式命令txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1相关联。
如果一种文件类型与开放式命令之间的关联出现了问题,而我们知道正确的开放式命令是什么,这时我们只需要在cmd中输入如下命令并回车即可修复:
ftype fileType=openCommandString
这里fileType代表的是指定的文件类型,比如txtfile,这里openCommandString代表的是开放式命令,比如notepad.exe
如果我们的txtfile与开放式命令之间的关联出了问题,我们只需要在cmd中输入:
ftype txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1
回车。这样,我们也就修复了txtfile文件类型与它的开放式命令之间的关联。
所谓开放式命令,其实就是对这种文件类型的打开方式。
每一种注册了的文件类型,在注册表中都会存在着它的一个对应的注册表项,这个注册表项就是:
HKEY_CLASSES_ROOT\filetype
这个filetype代表的是文件类型,比如batfile文件类型所对应的注册表项就是:
HKEY_CLASSES_ROOT\batfile
ftype命令所修改的注册表项主要就是---HKEY_CLASSES_ROOT\filetype\shell\open\command---这个项的默认值的数据。
但需要注意的是,ftype命令所修改的并不仅仅是这个默认值的数据。因而直接在注册表中修改这个数据,并不能代替ftype命令的修改。
当然,ftype命令所修改的全部的东西都可以在注册表中找到,但是,我们那样一一地去找,远不如用ftype命令简单修改来得爽。
右键打开方式
前面我们谈到了扩展名与文件类型的关联,文件类型与开放式命令的关联(也就是文件的打开方式),看起来好象我们关于文件关联的问题就谈完了,实则不然,还有另外的一个重要的方面我们没有谈到。这就是我们右击一个文件,选择打开方式(并不是所有文件右键都有打开方式这个选项的),然后我们选择一个程序,并把“始终使用这种程序打开同类型文件”前的勾选上,点确认。比如本文开头的那位朋友,把所有快捷方式都选择以word程序打开一样。这样之后,这个文件类型也就与这个开放式命令关联起来了。
ftype命令是修改文件类型与开放式命令的关联的,而右键打开方式也可以修改文件类型与开放式命令的关联,这二者的关系是什么呢?
我们发现,ftype命令和右键打开方式,这二者所修改的注册表项是不同的。Ftype命令所修改的注册表项是:
HKEY_CLASSES_ROOT\filetype
这个filetype代表的是文件类型,比如HKEY_CLASSES_ROOT\lnkfile
而右键打开方式所修改的主要注册表项是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext
这个.ext代表的是文件扩展名,比如:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk
按照我的理解,ftype命令所修改的内容属于系统设置,而右键打开方式所修改的内容则属于用户设置,这二者所设置的实际对象是一样的,当二者不一致的时候,用户设置优先于系统设置。
三个注册表项
总之,文件关联所涉及到的注册表项主要是三个:
HKEY_CLASSES_ROOT\.ext
HKEY_CLASSES_ROOT\filetype
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.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_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice
这个注册表项下的值和数据(具体就是名为progid的值和它的数据),是对应右键打开方式所设置的默认打开程序的。
在删除后,重启电脑,或者重启explorer,问题完美得到解决。
除了这种解决办法,其它的解决办法暂时没有找到。
顺便说一下,在XP下,UserChoice这个注册表项是没有的。
由于一些文件右键没有打开方式选项,在xp下,我们可以在我的电脑里面点工具----查看----文件夹选项---文件类型,这里我们可以进行同样的设置,而在Windows 7下,我们可以在----控制面板---程序---默认程序----始终使用指定的程序打开此文类型---里面进行设置,xp下设置的可选项要多得多,而Windows 7下则的设置则极为简明。
[1] [2]