zoukankan      html  css  js  c++  java
  • [注册表] 文件关联与关联文件

    注册表中储存文件关联信息的一些位置:

    (1) HKEY_CLASSES_ROOT

    (2) HKEY_CURRENT_USERSoftwareClasses

    (3) HKEY_LOCAL_MACHINESoftwareClasses

    (4) HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts

    (5) HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorerFileExts

    说明:【前三项】:(1)处存放的是本机文件关联的备份,会自动同步后面两处的信息。但实际操作时有些信息只有(1)处有,所以建议在枚举本机文件关联时以此处为准,以其它两处作补充。以下所说的“Classes目录”指代(1)(2)(3)中的任意一个,(2)是现行用户的,(3)是本地机器的,不建议选(1)。【后两项】:在尝试打开文件时或选择打开方式后会自动生成。以下所说的“FileExts目录”指代(4)(5)中的一个,按需选择。


    Classes目录.扩展名

    【(默认)】值为ProgID,对应目录下的同名子项(下称程序标识符)

    【DefaultIcon】在没有(默认)的值时会用它的值来指示这类文件的图标。

    Classes目录.扩展名ShellNew

    【NullFile】有这一项表示新建时新建一个空的文件,与下面二选一。

    【FileName】它的值是新建时 需要建立的文件 的地址,这文件一般在C:WINDOWSSHELLNEW下(没试过)。

    (如果要在新建菜单中显示这种文件,必须要有文件的类型名称)

    Classes目录程序标识符

    【(默认)】值是这类文件的类型名称(在文件浏览器中显示的“类型”,比如平时看到的“文本文档”,不写的话会显示“XXX 文件”)

    Classes目录程序标识符DefaultIcon

    【(默认)】值是这类文件的图标。

    Classes目录程序标识符shell菜单项

    备注:“菜单项”指的是右键菜单项,一般为“open”,也可以自定义字符(中文也行)。它在MUIVerb不存在或值为空时作为右键菜单的标题。这些右键菜单先显示“菜单项”为open的项,然后显示为英文的项,最后显示为中文的项。

    【MUIVerb】值不为空的话就会覆盖“菜单标题”,但显示时还是按照“菜单标题”排序。

    【icon】值是右键菜单中的图标的地址。(在Win7测试可以,XP不知道为什么不显示)

    Classes目录程序标识符shell菜单项command

    【(默认)】值是被调用的命令行。

    FileExts目录.扩展名OpenWithList

    【MRUList】右键菜单中“打开方式”子菜单的排列顺序,就是下面这些。

    【a】值是打开文件的程序的名称(包括扩展名)。可以没有,但有的话,MRUList要出现a这个字母。

    【b】同上。

    【c】同上。

    以此类推……

    FileExts目录.扩展名OpenWithProgids

    备注:ProgIDs,programmatic identifiers,程序标识符。该子项下存放着1个或多个程序标识符,作用不太清楚。

    FileExts目录.扩展名UserChoice

    【Progid】用户选择的程序的程序标识符。


    利用命令行添加/删除文件关联。

    【命令】

    REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]

    REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

    【说明】

    • KeyName:注册项路径,上文标下划线的即是。
    • ValueName:注册项下的名称,上文冒号前面的即是。若是(默认)就要用/ve。
    • Type:类型。没有/t Type就默认为REG_SZ。REG_SZ类型的值中,形如%xx%的变量不会被解析,而REG_EXPAND_SZ的则会被解析。另外,易语言系统支持库的注册表读取命令无法读取REG_EXPAND_SZ的值
    • /f:强制写入而不询问。
    • (其它没用过,捂脸)

    【注意事项】

    例子:""%%SystemRoot%%system32NOTEPAD.EXE" %%1"

    1、命令行中,引号是字符串的边界,当需要在注册表中写入引号时,要用字符转义。

    2、命令行中,形如%xxx%、%x的是变量,比如%cd%代表脚本运行目录、%1代表传入脚本的第一个参数,所以需要写入%SystemRoot%时,需要用字符%转义。


    本文原创,也算是学习笔记,如有错误,还望留言指正

    本文为博主原创,禁止转载或摘编。
  • 相关阅读:
    Android中获取屏幕高度和宽度
    Android--第三方控件--okHttp
    Android中获取手机电量信息
    Android中获取并设置屏幕亮度
    ViewPager实现图片的轮播
    ScrollView嵌套使用ListView冲突的解决与分析
    Vue中的MVVM框架
    vue(一)
    RabbitMQ消费端ACK与重回队列机制,TTL,死信队列详解(十一)
    RabbitMQ消费端限流策略(十)
  • 原文地址:https://www.cnblogs.com/aixcyi/p/10328184.html
Copyright © 2011-2022 走看看