在注册表中注册应用程序的数据文件

注册是Windows操作系统的信息存储中心,存放着包括计算机硬件配置、已安装软件的设置信息、当前用户的环境设置及某些文件类型与对其进行访问和操作的应用程序之间的联系等重要信息。Windows操作系统早期版本存放在初始化文件(.ini)的许多信息现在都存放在注册了。

  我们开发的软件常常要建立具有独特数据格式的数据文件。作为一个专业化的商品软件,其安装程序有责任将其所用到的特殊格式的数据文件注册进行注册,以使之和Windows操作系统更好地集成在一起,方便用户操作。

  下面,我们就以举例的形式详细介绍如何在注册数据文件进行注册。这里假设软件的可执行文件为MyEdi t.exe,其实质为Windows附件记事本应用程序Notepad.exe的拷贝(在C:/ Windows目录下),并假设MyEdit所用的数据文件的扩展名为.met。

  1.准备工作

  1)请先在桌面空白处单击鼠标右键,在弹出菜单选择“新建/文件夹”菜单项,并把“新建文件夹”重命名为“ My_Edit”,作为我们假设软件的工作目录。

  2)在My_Edit文件夹上双击鼠标左键来打开该文件夹,在其窗口菜单选择“文件/新建/文本文件”菜单项,或在其文件列表区域单击鼠标右键并在弹出菜单选择“新建/文本文件”菜单项,把新创建的一个“新建文本文件.t xt”重命名为Test.met。注意如果重命名前文件没有显示扩展名“.txt”,需要在窗口菜单选择“查看 /选项...”菜单项,在“选项”对话框选择“查看”页,把“隐藏已登记的文件类型的MS-DOS文件扩展名”项改为不选状态。

  3)打开“资源管理器”选择C:/Windows子目录下的Notepad.exe,按住Ctrl键将其拖到 My_Edit文件,并重命名为MyEdit.exe。

  说明:现在,文件Test.met的图标为带有Windows标志的缺省图标,文件类型为“MET文件”。在其文件名上双击鼠标左键将弹出“打开方式”对话框让用户选择与之相关联的应用程序(这里请勿进行任何操作即选择“取消 ”按钮关闭对话框)。在其文件名上单击鼠标右键弹出菜单的第一项为“打开方式”而非通常的“打开”。“新建”菜单组 也没有有关该文件类型的选项。(图1)

  2.注册文件类型

  1)在“开始”菜单选择“运行...”菜单项,在对话框输入Regedit并单击“确定”按钮启动注册 编辑器。

  2)在树形列表选择主键HKEY_CLASSES_ROOT,单击鼠标右键并在弹出菜单选择“新建/主键 ”,并把新建的主键名由“New Key#1”改为“.met”。

  3)在右边窗口双击“(默认)”并在“键值”编辑框内输入My_Edit_Data_File后单击“确定 ”按钮。

  4)重复2)操作,只是在最后把新建的主键名改为3)的输入值My_Edit_Data_File。

  5)在右边窗口双击“(默认)”并在“键值”编辑框内输入“MyEdit数据文件”后单击“确定”按钮。

  6)关闭注册管理器。

  再次打开My_Edit文件夹(如果已经打开,请按F5键以更新显示信息),我们看到文件Test.met的类型已被注册为前面设定的“MyEdit数据文件”。

  3.注册文件图标

  1)重复注册文件类型的步骤1)打开注册管理器。

  2)在树形列表选择HKEY_CLASSES_ROOT/ My_Edit_Data_File(各主键是按字母顺序排列的),在其下创建DefaultIcon主键。

  3)选择DefaultIcon,在右边窗口双击“(默认)”并在“键值”编辑框内输入“C:/ Wind ows/ Desktop/ My_Edit/ MyEdit.exe,0”后单击“确定”按钮。

  4)关闭注册管理器。

  说明:我们再回到My_Edit文件夹(如果已经打开,请按F5键以更新显示信息),看到文件Test.me t的图标已被修改为记事本应用程序的图标。实际上,文件的图标是由其DefaultIcon键值决定的。键值分两部分,中间用逗号隔开。前面是包含图标资源的文件名,可以为一个应用程序、动态链接库或资源文件,后面是一个数字,正值表示图标在文件的索引(从0开始),负值表示图标的资源标识。如果是文件的第一个图标资源,可以省略逗号和数字。

  4.注册弹出菜单项

  1)重复注册文件类型的步骤1)打开注册管理器。

  2)在树形列表选择HKEY_CLASSES_ROOT/ My_Edit_Data_File(各主键是按字母顺序排列的),在其下创建Shell主键。

  3)在刚刚创建的Shell下创建Open主键,再在Open下创建Command主键。

  4)选择Command,在右边窗口双击“(默认)”并在“键值”编辑框内输入“C:/ Windows/ Desktop/ My_Edit/ MyEdit.exe%1”后单击“确定”按钮。

  5)回到Shell下,创建Print主键,再在Print下创建Command主键。

  6)选择Command,在右边窗口双击“(默认)”并在“键值”编辑框内输入“C:/Windows/D esktop/My_Edit/MyEdit.exe/p%1”后单击“确定”按钮。

  7)关闭注册管理器。

  说明:现在重新回到My_Edit文件夹,在文件名Test.met上单击右键,弹出菜单已没有了“打开方式”项而增加了“打开”和“打印”菜单项(图2)。单击“打开”将用MyEdit.exe打开Test.met进行编辑,单击“打印”将把Test.met送往默认打印机进行打印。各菜单项下主键Command的数据为此菜单项对应的操作命令,其中%1表示当前文件名。这里只建立了比较常用也是相对标准的“打开”和“打印”菜单项,按同样格式,我们也可以建立其他任何菜单项。

  5.在“新建”菜单组添加数据文件

  1)重复注册文件类型的步骤1)打开注册管理器。

  2)在树形列表选择HKEY_CLASSES_ROOT /.met,在其下创建ShellNew主键。

  3)选择ShellNew主键,在窗口菜单选择“编辑/新建/串值”,并把新建的串值名称改为NullFi le。

  4)关闭注册管理器。

  说明:现在,请在“桌面”空白处单击右键,移动鼠标到“新建”菜单项,会看到其中已经新加了一项“MyEdi t数据文件”(图3),选择该项就会在“桌面”上新建一个名为“新建 MyEdit数据文件.met”的新文件。其实,我们还可以通过在ShellNew主键下建立其他串值对新建的文件进行更多一些控制,这样的串值共有四个,它们是:

  (1)NullFile:它的串值数据是"",用于创建一个空文件。若存在此项,则Data和FileNam e项将被忽略。

  (2)Data:它的串值数据是binary_value,用于创建一个包含有二进制数据binary_va lue的新文件。若存在NullFIle或FileName项,此将被忽略。

  (3)FileName:它的串值数据是path_name,用于生成一个由path_name所指定的文件 的拷贝。若存在NullFIle项,此将被忽略。

  (4)Command:它的串值数据是path_name,用于创建新文件后,执行path_name所指定的命令行。

  至此,我们已经完成了基本的数据文件注册工作。需要说明的是,上述工作我们是通过手工操作完成的,在实际应用 应该由安装程序通过调用RegCreateKeyEx()和RegSetValueEx()等Win32 API函数自动完成,并在卸载程序通过调用RegDeleteKey()等函数予以删除。应用程序的卸载信息注册在HKEY _LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / Curre ntVersion / Uninstall主键下面,可以在这里新建一个名为MyEdit的主键,除了“(默认)” 外再新建两个串值:DisplayName的数据指定一个在“控制面板”的“添加/删除应用程序”对话框显示的字符串,UninstallString的数据则指定运行卸载程序的命令行,包括路径、可执行文件名和所需的命令行参数。

  另外,通过扩展Windows外壳(Shell)可以在某种类型文件的“属性”添加新的属性页,这涉及到一些比较深入的编程技术,在此不予讨论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值