关于文件关联的问题!(50分)

  • 主题发起人 主题发起人 我爱delphi
  • 开始时间 开始时间

我爱delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
const
cMyExt = '.txt';
cMyFileType = 'Project1.FileType';
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(cMyExt, True);
Reg.WriteString('', cMyFileType);
Reg.CloseKey;
Reg.OpenKey(cMyFileType, True);
Reg.WriteString('', 'Project1 File');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/DefaultIcon', True);
Reg.WriteString('', Application.ExeName + ',0');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open', True);
Reg.WriteString('', '&Open');
Reg.CloseKey;
Reg.OpenKey(cMyFileType + '/Shell/Open/Command', True);
Reg.WriteString('', '"' + Application.ExeName + '" "%1"');
Reg.CloseKey;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
finally
Reg.Free;
end;
end;

上面的代码是将.txt文件和包含上面代码的程序建立文件关联,问题是我双击.txt文件后并没有把.txt文件中的内容加载到建立了关联程序的Memo组件里,我想
我应该在程序的Create事件里添加一些必要的代码,可是我不知道该怎么写,各位谁可以告诉我该怎么写啊![:(]
 
难道就没人知道吗?
 
Memo1.Lines.LoadFromFile(ParamStr(1));
 
tyzhang 的方法对于文件或路径名里面含有空格时候不管用,下面是我使用的一段代码
procedure TForm1.FormCreate(Sender: TObject);//检查命令行参数
var
i:integer;
s: string;
begin
s:='';
if paramcount<>0 then
begin
for i:= 1 to paramcount do
begin
if s='' then
s:=s+ paramstr(i)
else
s:= s+' '+ paramstr(i);
end;
end;
label1.Caption:= 'Target File :'+ s;
end;
 
上面的那段代码能获取自动关联时含有空格的文件路径(可以有多个空格,但不能连续
对文件路进中含有连续空格的路径如何获取我也不清楚了:(
 
后退
顶部