procedure InitBde;
var
   DataDirectory : string;
   ARegistry     : TRegistry;
begin
  DataDirectory := ExtractFilePath( Application.ExeName );
  DataDirectory := DataDirectory+'bde\';
  ARegistry     := TRegistry.Create;
  with ARegistry do    {创建一个TRegistry对象实例  }
  begin
    RootKey := HKEY_LOCAL_MACHINE;{指定根键为HKEY_LOCAL_MACHINE}
    if not OpenKey( 'Software\Borland\BLW32', False ) then
    begin
//      showmessage('key 1'); {写入BDE语言驱动程序所在的目录,即当前程序目录   }
      OpenKey( 'Software\Borland\BLW32', True );  //新建主键
      WriteString( 'BLAPIPATH', DataDirectory );
    end;
    CloseKey;    {关闭主键,同时将信息写入注册表}
    RootKey := HKEY_LOCAL_MACHINE;
    if not OpenKey('Software\Borland\Database Engine',False) then
    begin
//      showmessage('key 2');
      OpenKey('Software\Borland\Database Engine',True);  //新建主键
      WriteString( 'DLLPATH', DataDirectory );
    end;
    CloseKey;    {关闭主键,同时将信息写入注册表}
    Destroy;     {释放内存  }
  end;
end;

解决方案 »

  1.   

    下面的程序的功能可以实现右击文件文件时,出现“open with my program",点击一下,会用你的程序打开文本文件。
    你必须在窗体中放一个TMemo控件,以打开文本文件.
    uses Registry;
      
    procedure TForm1.RegistryFile;
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      Reg.RootKey := HKEY_CLASSES_ROOT;
      Reg.OpenKey('txtfile\shell\open with my program\command', true);
      Reg.WriteString('', Application.ExeExeName + ' %1';
      Reg.CloseKey;
      Reg.Free;
    end;procedure TForm1.Create(Sender: TObject);
    begin
      RegistryFile;
      if FileExists(ParamStr(1)) then  
       Memo1.Liens.LoadFromFile(ParamStr(1));
    end;
    //程序先运行一次,然后在资源管理器中右击试试吧。