函数类型: 自定义函数
函数说明:
关联文件与指定程序
代码如下:
procedure RegisterFileType(cMyExt, cMyFileType, cMyDescription, ExeName: string;
IcoIndex: Integer; DoUpdate: Boolean = False);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(cMyExt, True);
// 写入自定义文件后缀
Reg.WriteString('', cMyFileType);
Reg.CloseKey;
// 写入自定义的文件类型
// 格式为:HKEY_CLASSES_ROOT\cMyExt\(Default) = 'cMyFileType'
// 下面为该文件类型创建关联
Reg.OpenKey(cMyFileType, True);
Reg.WriteString('', cMyDescription);
// 写入文件类型的描述信息
Reg.CloseKey;
// 下面为自定义文件类型选择图标
// 加入键格式为 HKEY_CLASSES_ROOT\cMyFileType\DefaultIcon
// \(Default) = 'Application Dir\Project1.exe,0'
Reg.OpenKey(cMyFileType + '\DefaultIcon', True);
Reg.WriteString('', ExeName + ',' + IntToStr(IcoIndex));
Reg.CloseKey;
// 下面注册在资源管理器中打开文件的程序
Reg.OpenKey(cMyFileType + '\Shell\Open', True);
Reg.WriteString('', '&Open');
Reg.CloseKey;
// 格式:HKEY_CLASSES_ROOT\Project1.FileType\Shell\Open\Command
// (Default) = '"Application Dir\Project1.exe" "%1"'
Reg.OpenKey(cMyFileType + '\Shell\Open\Command', True);
Reg.WriteString('', '"' + ExeName + '" "%1"');
Reg.CloseKey;
// 最后,让资源管理器实现我们加入的文件类型,只需调用SHChangeNotify即可
if DoUpdate then
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
finally
Reg.Free;
end;
end;
用法示例:
无
《学习大师原创文档,请勿转载,侵权必究》
|