譬如我想打开一个xsl文件,就利用excel打开,
打开一个txt文件,就利用记事本打开
也就是说用Windows默认的打开方式打开相应文件。请问代码怎么写?

解决方案 »

  1.   

    use
     APIShell;var
      sFileName: String;  sFileName:='c:\11.doc';
      if FileExists(sFileName) then
        ShellExecute(Handle,'open',PChar(sFileName),nil,nil,SW_SHOWNORMAL)
      

  2.   

    写错了,重来use
     ShellAPI;var
      sFileName: String;  sFileName:='c:\11.doc';
      if FileExists(sFileName) then
        ShellExecute(Handle,'open',PChar(sFileName),nil,nil,SW_SHOWNORMAL)
      

  3.   

    你是怎么写的?
    确保有这个文件
     sFileName:='c:\11.doc';//你自己要打开的文件路径及文件名
      

  4.   

    我的代码没有问题啊,我测试过if语句,都很正常,我在你前面加上一个ShowMessage都正常的,为什么不能执行呢
      

  5.   

    if FileExists(sFileName) then
    begin
      ShellExecute(Handle,'open',PChar(sFileName),nil,nil,SW_SHOWNORMAL);
      ShowMessage('File Exists');
    end else
      ShowMessage('Error);你测试一下看看,文件是否存在?
      

  6.   

    用文件夹选项 直接关联 文件
    或者用windows命令关联文件
    或者修改注册表.显示或修改文件扩展名关联
      
      ASSOC [.ext[=[fileType]]]
      
       .ext 指定跟文件类型关联的文件扩展名
       fileType 指定跟文件扩展名关联的文件类型
      
      键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展
      名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为
      文件类型指定任何参数,命令会删除文件扩展名的关联。
      

  7.   

    FTYPE [fileType[=[openCommandString]]]
      
       fileType 指定要检查或改变的文件类型
       openCommandString 指定调用这类文件时要使用的开放式命令。
      
      键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的
      文件类型。 FTYPE 仅用一个文件类型启用时,它显示那个文件类
      型目前的开放式命令字符串。如果不为开放式命令字符串指定,
      FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个
      开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用
      的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,
      %3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的
      参数;n 可以是从 2 到 9 的数字。例如:
      
       ASSOC .pl=PerlScript
       FTYPE PerlScript=perl.exe %1 %*
      
      允许您启用以下 Perl 脚本:
      
       script.pl 1 2 3
      
      如果不想键入扩展名,则键入以下字符串:
      
       set PATHEXT=.pl;%PATHEXT%
      
      被启动的脚本如下:
      
       script 1 2 3
      

  8.   

    我打开文件前一句是:
    ExportGrid4ToExcel(sFile,cxGrid1,true,true);利用cxgrid保存成文件,但fileexists却判断不了,难道cxgrid还没有保存? 但我在目录里面看到该文件的