编程实现文件关联
文件关联的目的是要实现某种扩展名的文件由相应的应用程序来打开,对于编写的应用软件来说,由于一般都有设计者特定的扩展名的数据文件,软件编制者应在程序中实现自动关联而不能由用户手工去实现。下面给出实现文件关联的实用程序。
实现文件关联的核心是对注册表的操作,所有的文件关联都在 HKEY-CLASSES-ROOT下面,要实现文件关联必须在HKEY-CLASSES-ROOT中增加两个键值,一是和文件扩展名对应的类型说明,二是对这种类型文件的操作所需要执行的应用程序。下面举例说明,本例实现将扩展名为.xyz的文件定义为"我自己的文件"类型,双击此种类型的文件时执行的打开功能使用记事簿程序。实现这一功能需要用到Delphi中的函数RegCreateKey、RegSetValue。实现如下:
在窗体中放置一个按钮,双击按钮写如下代码:
procedureTForm1.Button1Click(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:='.xyz';
sKeyValue:='myfile';
RegCreateKey(HKEY-CLASSES-ROOT,
pchar(sKeyName),lphKey);
RegSetValue(lphKey,'',REG-SZ,
pchar(sKeyValue),0);
sKeyName:='myfile';
sKeyValue:='c:/Windows/NotePad.exe%1';
RegCreateKey(HKEY-CLASSES-ROOT,
pchar(sKeyName),lphKey);
RegSetValue(lphKey,'shell/open/command',REG-SZ,
pchar(sKeyValue),MAX-PATH);
end;
建立一新文件,使其扩展名为.xyz,然后双击它看是否是启动记事簿来打开的。
你的程序要接受文件拖放操作,这样就可以获得拖放的文件名!接着就简单了。