2.修改注册表。
这里有段delphi的代码,如果你有delphi,可以把它写个dll,在pb中调用。
function SetAssociatedExec(FileExt, Filetype, FileDescription, MIMEType, ExecName: string): Boolean; {修改成功,返回True,否则False}
var Reg: TRegistry;
begin
Result := False; {}
if (FileExt = '') or (ExecName = '') then Exit; {如果文件类型为空或者没有定义执行程序就退出,FileExt必须带″.″,如.BMP}
Reg := TRegistry.Create;
try
Reg.RootKey := HKey_Classes_Root;
if not Reg.OpenKey(FileExt, True) then Exit; {当不能正确找到或创建FileExt键时退出,这种情况一般是注册表有错误,以下同}
Reg.WriteString('', FileType);
if MIMEType <> '' then Reg.WriteString('Content Type', MIMEType);
Reg.CloseKey;
if not Reg.OpenKey(FileType, True) then Exit;
Reg.WriteString('', FileDescription);
if not Reg.OpenKey('shell\open\command', True) then Exit;
Reg.WriteString('', ExecName+' "%1"'); {执行程序一般都有参数,例如WinZip的“winzip32.exe ″%1″”,″%1″参数指ZIP文件的文件名。因此ExecName应视情况加入参数}
Reg.CloseKey;
finally Reg.Free;
end;
end;
如果没delphi,给个信箱,我编译好给你发过去。