网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章参考资料 → 通过注册表实现文件名后缀与应用程序相关联
通过注册表实现文件名后缀与应用程序相关联
日期:2005年9月23日 作者: 人气: 查看:[大字体 中字体 小字体]

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

程序例如下:

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"'

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

(出处:DelphiFans.com)

相关文章:
·在Delphi程序中操作注册表
·DELPHI加注册表自启动的最简单代码
·恶意网页修改注册表的12种现象
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved