⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitfrmmain.pas

📁 实现指定扩展名文件和相应程序的关联!实现指定扩展名文件和相应程序的关联
💻 PAS
字号:
unit unitFrmMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, registry,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
//参数说明:
//ft:文件名后缀,如可以为'.tst'或'afile.tst'
//key:在注册表中的键值,要唯一
//desc:关联程序的描述
//icon:缺省的程序图标,如Application.ExeName+',1',可以缺省
//prg:对应的应用程序

procedure registerfiletype(ft, key, desc, icon, prg: string);
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;

//指定本程序和扩展名为TST的文件关联
procedure TForm1.Button1Click(Sender: TObject);
begin
  registerFileType('.tes', 'testfile', '测试关联文件', Application.ExeName + ',1', Application.ExeName);
  ShowMessage('本程序和扩展名为tes的文件关联');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -