今天打开一个桌面图标时,不小心将打开方式选成了word,更糟糕的是没有将始终使用选择的程序打开这种文件选项前的勾去掉,于是悲催了,桌面上所有的快捷图标都变成了word形式,这下真是傻傻分不清楚各个图标的真实身份了。花了一些时间查找原因,最后问题总算解决了。现把学习到的一些东西记录下来,既帮助遇到同样问题的人解决问题,也方便自己以后回顾。

为了解决这个问题,需要用到一些文件关联的基础知识。

文件关联的基础知识

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

(1)文件扩展名和文件类型的关联 assoc命令

要将文件扩展名与文件类型关联起来,需要用到assoc命令。在windows命令行窗口(cmd)中输入assoc /?,可看到这个命令的具体用法。

下面以快捷方式的关联为例,让读者更清楚assoc命令的使用。

快捷方式的扩展名是.lnk,该扩展名一般不会显示。在cmd中输入assoc .lnk,可看到结果显示为.lnk=lnkfile,说明扩展名.lnk是与文件类型lnkfile相关联的,即凡是扩展名为.lnk的文件都是属于lnkfile这个文件类型的。若在cmd中输入.lnk=lnk后回车,则将扩展名与lnk文件类型相关联了。

so,若知道一种扩展名所属的正确文件类型,当该扩展名与文件类型之间的关联出现问题时,只需输入assoc .ext=filetype并回车,.ext是文件扩展名,如.lnk;filetype是文件类型,如lnkfile.

每个注册了的扩展名在注册表中对应一个表项HKEY_CLASSES_ROOT\.ext ,其中.ext是扩展名,如快捷方式的注册表项为HKEY_CLASSES_ROOT\.lnk,该项有一个默认的数据值,是该快捷方式关联的文件类型,因此assoc命令主要是修改表项的默认数据值。但需特别注意的是,assoc命令不仅仅修改了表项的默认数据值,它还修改了其他一些内容,所以直接在注册表中修改表项的数据值,并不能完全替代assoc命令。

(2)文件类型与开放式命令的关联 ftype命令

知道了如何将文件扩展名和文件类型关联起来,还需进一步知道如何把文件类型与开放式命令关联起来。比如,.txt文件扩展名关联的文件类型是txtfile,而正常情况下,txtfile文件总是用notepad.exe(记事本)打开。notepad.exe就是打开txtfile文件类型的开放式命令。如何来修改文件类型与开放式命令的关联呢,这需要用到另一个重要的命令ftype.

同样,在cmd中输入ftype /?,可看到关于这个命令的具体信息。其实它的作用就是两个:显示文件类型与开放式命令之间的关联和修改文件类型与开放式命令之间的关联。若想知道某种文件类型与什么开放式命令相关联,可在cmd中输入ftype filetype,其中filetype代表的是某种具体的文件类型,比如lnkfile。

当在cmd中输入ftype lnkfile,正常情况下应得到结果没有找到文件类型“lnkfile”或与其相关的开放式命令。因为正常情形下,lnkfile是没有与任何开放式命令相关联的。

若想改变某种文件类型的开放式命令关联,则可通过ftype filetype=特定的开放式命令。如ftype lnkfile=notepad.exe命令将文件类型与开放式命令notepad.exe关联起来了。若想清除所有关联,则可输入命令ftype lnkfile=后回车。不过,在XP环境下,需要在等号后加一个空格再回车。

同理,若某种文件类型与其开放式命令关联错误,可通过ftype filetype=特定的开放式命令来修改。如
ftypetxtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1

每种注册了的文件类型,在注册表中都有对应的表项HKEY_CLASSES_ROOT\filetype,HKEY_CLASSES_ROOT\batfile 。ftype命令主要修改的就是HKEY_CLASSES_ROOT\filetype\shell\open\command项的默认数据值。同assoc命令一样,ftype修改的不仅仅是注册表项。

(3)右键打开方式

当右击一个文件,选择打开方式选项以某种特定的程序打开这个文件,并勾选始终使用选择的程序打开这种文件,则该文件类型就与该开放式命令关联起来了。

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相当于系统设置,右键方式相当于自定义设置,当两者有冲突时,用户自定义设置高于系统设置。

问题解决

当出现在篇首提到的问题时,(1)在cmd中输入assoc .lnk,返回结果为.lnk=lnkfile,表示文件扩展名与文件类型之间的关联没有错误,(2)再在cmd中输入ftype lnkfile,返回结果为没有找到文件类型“lnkfile”或者与其相关的开放式命令,表示系统设置中的文件类型与开放式命令之间的关联式没有错误的。(3)前两步的操作说明问题只能出现在用户设置的lnkfile与开放式命令之间的关联了,此时只需在注册表中删除
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice表项,然后重启电脑或explorer就可以了。

本文转自三好技巧网,原文地址:http://www.3haoweb.cn/a/pc/win7/2010/0623/2440.html

win7下快捷方式关联错误的修复相关推荐

  1. win7 检查计算机更新,Win7下Windows Update检查更新总提示80244019错误怎么办

    windows update是现在大多数Windows操作系统都带有的一种自动检查更新工具,用来及时更新补丁和修复漏洞等,可以是我们的电脑体验更好更安全,不过最近有windows7系统用户反映说在Wi ...

  2. win7下计划任务schtasks使用详解及错误:无法加载列资源的解决方法1

    win7下计划任务schtasks使用详解及"错误:无法加载列资源"的解决方法1 2011-12-10 20:33 schtasks 命令简述: 安排命令和程序,使其定期运行或在指 ...

  3. oracle 安装找不到服务,win7 下安装oracle 11g出现错误: 启动服务出现错误 找不到服务OracleMTSRecoveryService...

    这种错误是在多次安装oracle都没有成功的情况下发生的. 正确安装oracle,是有前提条件的 1,安装最新的jdk,不是jre!!(并配好环境变量,在cmd中测试 java -version与ja ...

  4. win7系统无法开启telnet服务器,win7系统telnet出现错误怎么办?win7系统开启telnet出错的修复教程...

    如果win7系统中出现telnet错误,我该怎么办?这是一个不常见的问题.一般来说,只要设置正确.简单,就可以轻松启动.让我们看看win7系统中telnet错误的解决方案. win7系统telnet开 ...

  5. win7下 EPLAN新建项目出现“一个内部错误”的解决方法

    在win7下安装的EPLAN2.4版本,打开项目时会出现"一个内部错误" 计算机--管理--服务和应用程序--服务--找到eplan client service,把手动停止 再禁 ...

  6. 在xp下加载正常的dll,在win7下loadlibrary失败,返回错误值998(ERROR_NOACCESS)的解决办法

    最近遇到了加载第三方dll,在xp下运行正常,在win7下却LoadLibrary失败的情况. 用GetLastError获取错误值为998,也就是ERROR_NOACCESS. 在网上搜索了很久都没 ...

  7. win7下快速启动栏的快捷方式的位置

    前几天在VMware下装了个win7玩玩,装好后发现ie8的首页被改成2345.com.于是到注册表搜索,把能搜到的所有数据都清空掉. 再次打开ie,发现从桌面上打开的ie时主页已经恢复正常,但是从快 ...

  8. win7 下jlink v8固件修复

    网上关于jlink 固件修复的的内容不再少数,方法介绍也很详细,昨天一不小心玩坏了,网上找帖子开始刷固件,试了好几次都不能成功.在win7 下,吧jlink擦除后一直安装不了驱动,手动自动都没辙. 最 ...

  9. bcb获取计算机名称,win7老电脑共享打印机无法连接0x00000bcb错误的修复方法

    近日win7 64位纯净版网友和爱纯净小编反映自己的老电脑在同一个局域网安装共享打印机时,弹出错误提示框"windows无法连接打印机,操作失败,错误为0x00000bcb".这是 ...

  10. Fences桌面在win7下安装错误

    今天看到桌面太多东西啦,找个桌面软件管理以下,就想到了之前用到的Fences桌面,之前用的XP系统,直接就安装成功了,但是今天在win7下安装的时候出现error:大楷报的是OFFICE文件夹下面没有 ...

最新文章

  1. 如何找回RAID1丢失的数据
  2. 阿里智能对话交互实践与创新
  3. Feature Extractor[DenseNet]
  4. 讲师征集| .NET Conf China 2021正式启动!
  5. Linux下ps命令详解
  6. 注册事件的两种方式(传统注册事件、方法监听注册事件)
  7. 阿里巴巴分布式消息系统的演进之路
  8. 某高手毕生精力总结的电脑技巧
  9. NotePad++常用快捷键。——Arvin
  10. 旋钮编码器c代码_电机编码器故障检修,其实跟编码器没有关系
  11. 用matlab解拉格朗日,用MATLAB实现拉格朗日插值
  12. 读《美国交通信号配时实践经验》后的感受
  13. Linux 下Nginx SSL/HTTPS 配置
  14. 获取视频旋转角度,并对视频进行旋转
  15. 基于京东micro-app微前端框架的项目实践
  16. MySQL 为什么需要两阶段提交?
  17. linux swap逻辑 主,swap是主分区和是逻辑分区有什么差异么??
  18. 为什么挤破头进大厂,大厂如何设置薪资职级体系?
  19. 【6.21更新】coursera视频打不开的解决方法
  20. 安装Bioperl最基本模块Bio::SeqIO

热门文章

  1. IE改善七大手法| ECRS工时分析软件
  2. log4j2配置文件详解
  3. 模拟电子技术基础(一)
  4. 【可视化】数据仓库与数据挖掘大作业
  5. 计算机辅助机械设计实训教程,机械设计教学中计算机辅助设计应用
  6. 服务器mt核心bug修复,RHSA-2020:0374-重要: 内核 安全和BUG修复更新
  7. RubyOnRails开发知识链接汇总
  8. ueditor编辑器的使用
  9. 修改Ubuntu的键盘映射
  10. ubuntu 下android设备找到fastboot驱动