Ver Mensaje Individual
  #5  
Antiguo 24-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Danell.

Si, disculpas. Escribí el código en el aire y el último parámetro de ShellExecute no debería ser 0.

De paso te pongo un ejemplo de un procedimiento al cual sólo debes mandarle la ruta y nombre del programa para simplificar el llamado:
Código Delphi [-]
uses ShellApi;

procedure TForm1.EjecutarApp(AppName: string);
var
  ErrNro: Integer;
  ErrMsg: string;
begin
  ErrNro:= ShellExecute(Handle, nil, PChar(AppName), nil, nil, SW_SHOWNORMAL);
  case ErrNro of
    ERROR_FILE_NOT_FOUND: ErrMsg := 'Archivo no encontrado';
    ERROR_PATH_NOT_FOUND: ErrMsg := 'Ruta no encontrada';
    SE_ERR_ACCESSDENIED : ErrMsg := 'Acceso negado';
    SE_ERR_DDETIMEOUT   : ErrMsg := 'Se agotó la solicitud de tiempo de espera';
    SE_ERR_OOM          : ErrMsg := 'Sin memoria para completar la operación';
  end;
  if ErrNro <= 32 then
    MessageBox(Handle,PChar(ErrMsg),'ERROR',MB_ICONERROR+MB_OK);
end;

Llamadas de ejemplo:
Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  EjecutarApp('C:\Windows\System32\calc.exe');
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
  EjecutarApp('C:\Windows\System32\notepad.exe');
end;
Puse los errores mas comunes, el resto de ellos así como todos los detalles de la función ShellExecute los tenes [aquí].

Y por si te fuera de ayuda te adjunto un ejemplo para que puedas probarlo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-11-2012 a las 07:10:49.
Responder Con Cita