

这篇是BCB的文章,……我也没看。
在日常使用电脑的过程中,我们只要双击文件夹中各种形象化的文件图标就可以直接启动相关联的软件来打开该文件(如Word文档),而不需要用户关心该用什么软件来打开此类文件。这样做不但方便了用户,同时也增加了软件的主动性及灵活性。
软件的这种功能是如何实现的呢?接下来我就为大家介绍如何在Windows环境下为自己开发的软件增加这样的功能。“玩”过Windows注册表的朋友应该都会发现在注册表的HKEY_CLASSES_ROOT主键中有很多以“.”开头的子项(如.txt),而这些子项就是最关键的开始。下面我就以文本文件(*.txt)为例来进行说明。
打开菜单“开始->运行...”,输入“regedit”来启动注册表编辑器。然后打开HKEY_CLASSES_ROOT主键找到“.txt”子项,点击后就可以在右边查看该项的有内容。在这里我们主要关心的是“(默认)”这一项,因为它的内容就是我们要找的下一个主键项。一般情况下该键值为“txtfile”,接下来继续在HKEY_CLASSES_ROOT主键中找到“txtfile”子项,双击打开该项后会出现多个子项,下面说明主要的子项的用途:
txtfile |
//--------------------------------------------------------------------------- |
[此贴子已经被作者于2006-1-19 11:25:03编辑过]
/// <summary>
/// 建立文件关联
/// </summary>
void BindFileType()
{
string appName = "BatchBarcode";
string fileExt = ".bar";
//注册文件类型
RegistryKey key = Registry.ClassesRoot;
RegistryKey ext = key.OpenSubKey(fileExt);
if (ext == null)
{
ext = key.CreateSubKey(fileExt);
ext.SetValue("",appName);
ext.Flush();
ext.Close();
}
//注册打开方式
string cmdName = appName + "\\shell\\open\\command";
RegistryKey cmdKey = key.OpenSubKey(cmdName);
if (cmdKey == null)
{
cmdKey = key.CreateSubKey(cmdName);
cmdKey.SetValue("", "\"" + Application.ExecutablePath + "\" \"%1\"" );
cmdKey.Flush();
cmdKey.Close();
}
key.Close();
}