C#注册表编程示例二:在“新建”中添加自己的文件类型

来源:互联网 发布:coreldraw绘制软件下载 编辑:程序博客网 时间:2024/06/06 13:06

注册文件原理:
我知道当点击一个html文件时,浏览器就会自动打开,或者是点击一个doc文件,Word就会运行。有没有想过当用户点击你自己定义文件类型时,你的程序就会自动启动呢?其实想做到这点很简单,只须对注册表做点手脚就行了。每一个文件类型的信息被保存在注册表中的 'HKEY_CLASSES_ROOT'下面。假设我们自定义的文件类型的后缀为.xhg,文件名为Test_File_Hype (中间不能有空格).

  1. 首先在HKEY_CLASSES_ROOT下创建 .hyp                                                                                                                                                                     HKEY_CLASSES_ROOT\.xhg将[默认]键值改为"Test_File_Hype"。
  2. 然后在HKEY_CLASSES_ROOT下添加主键 Test_File_HypeHKEY_CLASSES_ROOT\Test_File_Hype
  3. 按照下面的路径添加新的主键                                                                                                              HKEY_CLASSES_ROOT\Test_File_Hype\Shell                                                                                                                      HKEY_CLASSES_ROOT\Test_File_Hype\Shell\Open                                                                                    HKEY_CLASSES_ROOT\Test_File_Hype\Shell\Open\Command                                                                                                                                                                                  将下面的字符作为Command的键值      your application path.exe %1      (例如 C:\WINDOWS\HYP\HYP.EXE %1)                                                                                            或许你还想为自己的文件类型加上同自己的执行文件一样的图标,很简单,照下面的方法添加就行了。HKEY_CLASSES_ROOT\Test_File_Hype\DefaultIcon               输入键值                                                                                                                                                                                                                                                                                     you application path.EXE,0                                                                                                                                                                                                                                                   后面的零表示文件的图标同程序的主图标一致,如果你的程序有很多图标,换一换数字就可改变文件显示的图标了。

        下面的例子在桌面的右键快捷菜单中或在Windows资源管理器的“新建”中添加自己的文件类型。假设添加的是扩展名为“.cs”的文件,说明文件为“cs files”,默认文件的打开方式采用Windows中的写字板notepad.exe打开。

程序清单18-2:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Microsoft.Win32;

namespace RegistryDemo{    public partial class fRegistry : Form    {        public fRegistry()        {            InitializeComponent();        }

        private void btnAddFileType_Click(object sender, EventArgs e)        {            RegistryKey csFileKey = Registry.ClassesRoot.CreateSubKey(".xhg");            csFileKey.SetValue("", "xhg");            RegistryKey rkey = csFileKey.CreateSubKey("ShellNew");            rkey.SetValue("NullFile", "");            csFileKey.Close();            csFileKey = Registry.ClassesRoot.CreateSubKey("xhg");            csFileKey.SetValue("", "xhg file");            rkey.SetValue("", "c:\\windows\\notepad.exe,1");            rkey.Close();            rkey = csFileKey.CreateSubKey("shell\\open\\command");            rkey.SetValue("", "c:\\windows\\notepad.exe");            rkey.Close();            MessageBox.Show("修改成功!");        }    }}

原创粉丝点击