下面的涵數可以解決你的問題 :
Function OpenFile(filename:string):integer;
begin
ShellExecute(0, 'open', PChar(filename),nil, nil, SW_SHOW);//用關聯的程序打開文件
Result :=GetLastError;
if Result=1155 then //如果文件沒有關聯程序,則用windows的OpenWith
begin
ShellExecute(0,nil,Pchar('RunDll32.exe'),
Pchar('SHELL32.DLL,OpenAs_RunDLL '+filename),nil, SW_SHOWNORMAL) ;
Result := GetLastError ;
end;
end;
下面的涵數可以解決你的問題 :
Function OpenFile(filename:string):integer;
begin
ShellExecute(0, 'open', PChar(filename),nil, nil, SW_SHOW);//用關聯的程序打開文件
Result :=GetLastError;
if Result=1155 then //如果文件沒有關聯程序,則用windows的OpenWith
begin
ShellExecute(0,nil,Pchar('RunDll32.exe'),
Pchar('SHELL32.DLL,OpenAs_RunDLL '+filename),nil, SW_SHOWNORMAL) ;
Result := GetLastError ;
end;
end;