如何实现文件关联
建立文件关联可实现某种扩展名的文件由对应的应用程序打开,而实现文件关联的核心问题是对注册表的操作。所有文件的关联都保存在HKEY_CLASSES_ ROOT下,如图22所示。
图22 注册表中的文件关联键 {转载,图片无法显示, @_@...}
因此要实现文件关联必须在HKEY_CLASSES_ROOT 中增加两个键值,一是和文件扩展名对应的类型说明;二是打开这种类型文件所需要执行的应用程序。下面完成一个示范程序,选择“File|New Application”菜单命令,在默认的窗体的OnCreate事件中添加如下所示的代码。事实上,有关文件的关联工作最好在主窗体的OnCreate事件中完成。
Procedure TForm1.FormCreate(Sender: TObject);
var
lphKey: HKEY;
sKeyName: string;
sKeyValue: string;
begin
sKeyName := 'myfile';
sKeyValue := '我的文档';
RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName), lphKey);
RegSetValue(lphKey, '', REG_SZ,pchar(sKeyValue), 0);
sKeyName := '.qjg';
sKeyValue := 'myfile';
RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName), lphKey);
RegSetValue(lphKey, '', REG_SZ,pchar(sKeyValue), 0);
sKeyName := 'myfile';
sKeyValue := 'c:/Winnt/NotePad.exe %1'; //如果你知道DOS下的.Bat文件的语法的话便知%1指的是要打开的文件
RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName), lphKey);
RegSetValue(lphKey, 'shell/open/command', REG_SZ,pchar(sKeyValue), MAX_PATH);
end;
按下F9键运行程序,然后使用Regedit打开注册表编辑器,可见新的键值已经建立,如图23所示。
图23 建立了新的键值
新建一个扩展名为qjg的文件,双击打开,则系统会自动使用Windows记事本程序打开这个文件。