//========================================================================
//TITLE:
// 说说文件的关联
//AUTHOR:
// norains
//DATE:
// Saturday 13-October-2007
//Environment:
// EVC4.0 + Windows CE 5.0 Standard SDK
//========================================================================
在WinCE下设置未见关联是一件很容易简单的事情,但要将这件简单容易的事情单单用文字来描述却着实不简单.所以,还是老方法,直接上代码,然后注释讲解.
下面这部分代码的意图是将.bmp和.gif这两种文件关联到一个名为imagefile键下,然后在imagefile键中定义了这两种图片在eplorer显示的图标以及双击时用何种程序打开.
文章中出现的CReg类请参考该文章:http://blog.csdn.net/norains/archive/2007/06/20/1659925.aspx
CReg reg;
//
.bmp文件链接到imagefile键
reg.Create(HKEY_CLASSES_ROOT,TEXT(
"
.bmp
"
));
_tcscpy(szValue,TEXT(
"
imagefile
"
));
reg.SetSZ(NULL,szValue);
reg.Reset();
//
.gif文件链接到imagefile键
reg.Create(HKEY_CLASSES_ROOT,TEXT(
"
.gif
"
));
_tcscpy(szValue,TEXT(
"
imagefile
"
));
reg.SetSZ(NULL,szValue);
reg.Reset();
//
创建imagefile键
reg.Create(HKEY_CLASSES_ROOT,TEXT(
"
imagefile
"
));
reg.SetSZ(NULL,TEXT(
"
imagefile
"
));
reg.Reset();
//
设置explorer中显示的图标.该图标为UI.exe程序中序号为-183的ico.
reg.Create(HKEY_CLASSES_ROOT,TEXT(
"
imagefile/DefaultIcon
"
));
_stprintf(szValue,TEXT(
"
%s,-%d
"
),TEXT(
"
UI.exe
"
),
-
183
);
reg.SetSZ(NULL,szValue);
reg.Reset();
//
设置imagefile文件打开的程序为imageeye.exe
reg.Create(HKEY_CLASSES_ROOT,TEXT(
"
imagefile/shell/open/command
"
));
_tcscpy(szValue,TEXT(
"
imageeye.exe
"
));
_tcscat(szValue,TEXT(
"
%1
"
));
reg.SetSZ(NULL,szValue);
reg.Reset();
该代码创建的注册表结构如下(图一):
以上代码是将两个文件归结到imagefile键,然后根据imagefile键值进行相应的操作.如果想.bmp和.gif分别采用不同的设置也同样简单,只要将DefaultIcon和command这两部分代码分别移到各自的键位下即可.