通过注册表完成文件名后缀与运用程序相关联

 

通过对注册表进行修改,可以实现一种文件名后缀与某个应用程序相关联

程序例如下:

procedure registerfiletype(ft,key,desc,icon,prg:string);

//ft:文件名后缀,如可以为'.tst'或'afile.tst'

//key:在注册表中的键值,要唯一

//desc:关联程序的描述

//icon:缺省的程序图标,如Application.ExeName+',1',可以缺省

//prg:对应的应用程序

var myreg : treginifile;

    ct : integer;

begin


     // 取文件的后缀

     ct := pos('.',ft);

     while ct > 0 do begin

           delete(ft,ct,1);

           ct := pos('.',ft);

     end;

     if (ft = '') or (prg = '') then exit; //判断后缀及应用程序是否有效

     ft := '.'+ft;

     myreg := treginifile.create('');

     try

        myreg.rootkey := hkey_classes_root; // 根应该为HKEY_CLASSES_ROOT

        if key = '' then key := copy(ft,2,maxint)+'_auto_file';

        // 如果没给出键值,则自动创建一个

        myreg.writestring(ft,'',key); // 写入描述的键值

        myreg.writestring(key,'',desc); // 写入描述

        if icon <> '' then

           myreg.writestring(key+'\DefaultIcon','',icon);

           // 写入缺省图标

        myreg.writestring(key+'\shell\open\command','',prg+' "%1"');

           //写入相关联的应用程序

     finally

            myreg.free;

     end;

end;

调用例子:

Example:

       registerFileType('.tst',

                        'testfile',

                        '测试关联文件',

                        Application.ExeName+',1',

                        Application.ExeName);

原理说明:

    程序关联的键值放在注册表根为HKEY_CLASSES_ROOT下面。实现文件关联要写入两

    个键值:后缀键值和描述键值(可用术语用的不对)

    如实现将.tst与程序tstfile.exe相关联

    其中后缀键值形为:  .tst       myprogram

    key值为文件后缀,取值为对于key的一个描述

    描述键值形为:       myprogram 文件描述

    其中还有相应的子键,如缺省的程序图标,形为:

                         myprogram\DefaultIcon  '', 'tstfile.exe,1'

    打开命令,形为:

                         myprogram\shell\open\command '', 'tstfile.exe "%1"'

    写入完这两个键值后就可以实现文件与应用程序相关联了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值