ShellExecuteEx(@ShellExInfo) 去执行一个没有的.exe,
执行的是C:\aaa.exe,但C盘实际上没有这个aaa.exe如何判断它执行不成功!?

解决方案 »

  1.   

    flag := ShellExecuteEx(@ShellExInfo);
    if flag=false then
         messagebox(getactivewindow(),'程序未执行,!','错误!' ,MB_OK + MB_ICONERROR);为什么这样不行?
      

  2.   

    用楼上的办法,或者用异常处理。
    ShellExecuteEx返回的错误可以用GetLastError捕获。
      end;
      try
      ShellExecuteEx(@ShellExInfo);
      case GetLastError of
        ERROR_FILE_NOT_FOUND:ShowMessage('文件不存在');
        //...
      end;
      except
      
      end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
     var filename:string;
    begin
     filename:='C:\aaa.exe';
      if FileExists(FileName) then
      ShellExecute(handle,'open',pchar(filename),nil,nil,0)
     else
     messagebox(getactivewindow(),'程序未执行!','错误!' ,MB_OK + MB_ICONERROR);
    end;