function GetAssociation(const DocFileName: string): string;
var
FileClass: string;
Reg: TRegistry;
begin
Result := '';
Reg := TRegistry.Create(KEY_EXECUTE);
Reg.RootKey := HKEY_CLASSES_ROOT;
FileClass := '';
if Reg.OpenKeyReadOnly(ExtractFileExt(DocFileName)) then
begin
FileClass := Reg.ReadString('');
Reg.CloseKey;
end;
if FileClass <> '' then begin
if Reg.OpenKeyReadOnly(FileClass + '/Shell/Open/Command') then
begin
Result := Reg.ReadString('');
Reg.CloseKey;
end;
end;
Reg.Free;
end;
to D影子D,9861:
对不起哈,刚才忙没有经过测试就贴上来了,下面的代码能根据文件的关联自动启动相应
程序:
if OpenDialog1.Execute then
ShellExecute(0,'open', PChar(OpenDialog1.FileName), nil,nil, SW_Show)