📄 unitfrmmain.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 + -