var
FilePath:string;
ShellReturn:integer;
begin
FilePath:=檔案路徑+檔案名稱
if FilePath<>'' then
begin
ShellReturn:=ShellExecute(Handle,PChar('Open'),PChar(filepath),nil,nil,1);
if ShellReturn<=32 then
case ShellReturn of
0 : messagebox(handle,'系統資源不足,檔案開啟失敗!','失敗',MB_OK+MB_ICONSTOP);
SE_ERR_ASSOCINCOMPLETE: messagebox(handle,'指定的檔案名稱不符合windows規範','失敗',MB_OK+MB_ICONERROR);
SE_ERR_FNF : messagebox(handle,'指定的檔案沒有找到','失敗',MB_OK+MB_ICONERROR);
SE_ERR_OOM : messagebox(handle,'沒有足夠的記憶體完成操作,檔案開啟失敗!','失敗',MB_OK+MB_ICONSTOP);
SE_ERR_PNF : messagebox(handle,'指定的目錄沒有發現','失敗',MB_OK+MB_ICONERROR);
{當傳回值表示該類型檔案未在系統中註冊時,調用系統'開啟檔案...'對話方塊}
SE_ERR_NOASSOC : winexec(PChar('rundll32 shell32,OpenAs_RunDLL '+FilePath),SW_SHOWDEFAULT);
else
messagebox(handle,'檔案開啟失敗','失敗',MB_OK+MB_ICONERROR);
end;
end;
end;