flag := ShellExecuteEx(@ShellExInfo); if flag=false then messagebox(getactivewindow(),'程序未执行,!','错误!' ,MB_OK + MB_ICONERROR);为什么这样不行?
用楼上的办法,或者用异常处理。 ShellExecuteEx返回的错误可以用GetLastError捕获。 end; try ShellExecuteEx(@ShellExInfo); case GetLastError of ERROR_FILE_NOT_FOUND:ShowMessage('文件不存在'); //... end; except
end;
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;
if flag=false then
messagebox(getactivewindow(),'程序未执行,!','错误!' ,MB_OK + MB_ICONERROR);为什么这样不行?
ShellExecuteEx返回的错误可以用GetLastError捕获。
end;
try
ShellExecuteEx(@ShellExInfo);
case GetLastError of
ERROR_FILE_NOT_FOUND:ShowMessage('文件不存在');
//...
end;
except
end;
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;