"这篇资源是关于使用C#编程语言实现文件关联功能的代码示例,主要涉及注册表操作,关联自定义图标以及设置文件名后缀。" 在C#编程中,有时候我们需要让应用程序与特定的文件类型关联,以便用户双击该类型的文件时,系统能自动启动我们的应用来处理这些文件。这篇代码片段展示了如何实现这个功能,特别是通过修改注册表来关联文件类型和图标。 首先,我们看到一个按钮事件`button1_Click`,当用户点击按钮时,程序会执行相应的操作。在此事件处理函数中,`textBox1.Text`用于输入要关联的文件类型的扩展名,如果扩展名没有以"."开头,程序会在前面添加"."以确保正确格式。 接着,获取应用的可执行路径`Application.ExecutablePath`,这个路径在之后会被用作注册表中程序的标识。注册表的关键入口点是`Registry.ClassesRoot`,通常用`RegistryKey hk_root = Registry.ClassesRoot;`来表示。 为了创建新的文件类型关联,我们需要在注册表中创建一个新的子键,如`"widebright.mp3"`,这代表了一个程序接口ID(ProgID)。使用`hk_root.CreateSubKey("widebright.mp3")`创建这个子键,如果创建失败,程序会显示错误信息并退出。 创建了ProgID后,我们设置其默认值,这个值通常用来描述关联的文件类型,例如在这里设置为`"widebrightרõmp3ļ"`。接着,创建`DefaultIcon`子键来指定文件类型的图标,同样,如果创建失败,也会显示错误信息并退出。 在`defaultIcon`子键下,我们可以设置文件类型的默认图标,例如`"C:\\path\\to\\icon.ico"`,这将关联到`widebright.mp3`文件类型。这样,当用户在文件浏览器中看到这种类型的文件时,会显示我们设定的图标。 除了设置图标,还可以创建其他子键来定义文件类型的行为,如`Shell`子键来控制文件右键菜单的操作,或者`OpenWithList`来指定可以用来打开此类文件的其他程序。 这段C#代码展示了如何通过注册表操作来实现自定义文件类型的关联,并为其分配一个图标。这对于开发需要处理特定文件类型的桌面应用是至关重要的。在实际应用中,开发者需要根据自己的需求,调整代码中的文件类型、图标路径和注册表键值,以满足特定的应用场景。
{
string fileType = textBox1.Text;
if (!fileType.StartsWith("."))
{
fileType = "." + fileType;
textBox1.Text = fileType;
}
//Application.StartupPath 这个只是路径
// Environment.CommandLine ; 这个包含参数
string appName = Application.ExecutablePath;
RegistryKey hk_root = Registry.ClassesRoot; //HKEY_CLASSES_ROOT
//注册自己程序的the ProgID
if (null == hk_root.OpenSubKey("widebright.mp3")) //The proper format of a ProgID key name is [Vendor or Application].[Component].[Version], separated by periods and with no spaces, as in Word.Document.6. The Version portion is optional but strongly recommended (see Using Versioned PROGIDs).
{
RegistryKey progID = hk_root.CreateSubKey("widebright.mp3");
if (progID == null)
{
MessageBox.Show("创建widebright.mp3 类型ProgID时失败");
hk_root.Close();
return;
}
//创建(默认)键值,显示给用户看的文件类型描述
progID.SetValue("", "widebright专用的mp3文件 ", RegistryValueKind.String );
//文件显示的图标
RegistryKey defaultIcon = progID.CreateSubKey("DefaultIcon");
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 8
- 资源: 49
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展