const badresult='error';
      function _FileExec(const FileName:string;Params:string;
                         DefaultDir: string;ShowCmd: Integer
                         ): string;
         var zFileName, zParams, zDir: array[0..79] of Char;
         var exechandle:Thandle;
         begin
           exechandle := ShellExecute(0, nil,StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),StrPCopy(zDir, DefaultDir), ShowCmd);
           case exechandle of
                0                      :result:=BadResult+'操作系统资源溢出!';
                ERROR_FILE_NOT_FOUND   :result:=BadResult+'指定的文件没有找到.';
                ERROR_PATH_NOT_FOUND   :result:=BadResult+'指定的文件路径没有找到.';
                ERROR_BAD_FORMAT       :result:=BadResult+'指定的.EXE文件非法(不是一个有效的Win32程序)';
                SE_ERR_ACCESSDENIED    :result:=BadResult+'操作系统拒绝访问指定的文件.';
                SE_ERR_ASSOCINCOMPLETE :result:=BadResult+'文件名的关联不完整或是一个非法关联';
                SE_ERR_DDEBUSY        :result:=BadResult+'其它DDE事务正在处理无法响应当前请求事务.';
                SE_ERR_DDEFAIL        :result:=BadResult+'事务失败';
                SE_ERR_DDETIMEOUT      :result:=BadResult+'由于请求时间超期,DDE 事务无法完成';
                SE_ERR_DLLNOTFOUND     :result:=BadResult+'指定的动态连接库没有找到';
                //SE_ERR_FNF        :result:=BadResult+'指定的文件没有找到.';
                SE_ERR_NOASSOC        :result:=BadResult+'没有与当前文件扩展名相关联的服务程序';
                SE_ERR_OOM        :result:=BadResult+'没有足够的内存来完成此操作';
                //SE_ERR_PNF        :result:=BadResult+'指定的文件路径没有找到';
                SE_ERR_SHARE        :result:=BadResult+'发生了一个访问共享冲突';
           else
               result:=inttostr(exechandle); //返回执行程序的句柄
           end;
         end;

解决方案 »

  1.   

    用Winexec(Exe的路径+文件名,sw_show)
      

  2.   

    uses ......,ShellAPI;......shellexecute(0, 'open', 可执行文件名, 参数, nil, 0);
      

  3.   

    用winexec(文件名,窗体状态)即可
      

  4.   

    uses ......,ShellAPI;.......
    shellexecute(handle,'open','exe文件路径','','exe文件工作路径',SW_SHOWNORMAL) 调用查找,不如自己做一个吧,用API,不过很繁,用Delphi处理文件系统也行啊。