Wndows外壳编程-调用"打开方式..."对话框来打开文档

例: 
在use中加入ShellAPI单元 
 
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; 
 
在这里: 
ShellExecute(Handle,PChar('Open'),PChar(filepath),nil,nil,1);用于直接打开已注册过的文件(也可以是网页,程序等) 
 
winexec(PChar('rundll32  shell32,OpenAs_RunDLL  '+FilePath),SW_SHOWDEFAULT);用于调用系统的'打开方式...'对话框来打开该文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值