例如,在通常情况下,只要双击BMP文件,就会自动用画图程序打开此图像。
问如何在Delphi中实现能自动打开自定义文件类型?

解决方案 »

  1.   

    文件关联的目的是要实现某种扩展名的文件由相应的应用程序来打开,对于编写的应用软件来说,由于一般都有设计者特定的扩展名的数据文件,软件编制者应在程序中实现自动关联而不能由用户手工去实现。下面给出实现文件关联的实用程序。 实现文件关联的核心是对注册表的操作, 所有的文件关联都在HKEY—CLASSES— ROOT 下面,要实现文件关联必须在HKEY—CLASSES—ROOT 中增加两个键值,一是和文件扩展名对应的类型说明,二是对这种类型文件的操作所需要执行的应用程序。下面举例说明,本例实现将扩展名为.xyz的文件定义为“我自己的文件”类型,双击此种类型的文件时执行的打开功能使用记事簿程序。 实现这一功能需要用到Delphi中的函数 RegCreateKey、RegSetValue。实现如下:  在窗体中放置一个按钮,双击按钮写如下代码:
    procedure TForm1.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,然后双击它看是否是启动记事簿来打开的。-------------------------------------------------------------------------
    网页链接地址:http://www.mhdn.net/p/2002-10-18/6136.html
    转自 明辉开发者网络MHDN