Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2008
grotero76 grotero76 is offline
Miembro
 
Registrado: feb 2007
Posts: 32
Poder: 0
grotero76 Va por buen camino
Gracias por tu respuesta,

el caso es que la función winexec devuelve lo mismo tanto si la ejecución fue bien como sino. Por ejemplo pruebo a ejecutar un DTS que existe y uno que no y el resultado de hacer el winexec lo capturo en una variable entera, siempre obtengo el mismo resultado, en mi caso un 33.

La verdad que no sé qué hacer.

Muchas gracias y un saludo.
Responder Con Cita
  #2  
Antiguo 12-06-2008
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 20
Khronos Va por buen camino
Hola!

Código Delphi [-]
uses Windows;

var
   ExecError: DWORD;
begin

ExecError:=WinExec(pcahr('MiPrograma.exe'), 1);
      If ExecError>31 then showmessage('MiPrograma.exe se ha ejecutado satisfactoriamente');

    case ExecError of
           0: showmessage('Error en la memoria');
           ERROR_BAD_FORMAT: showmessage('Error en el formato del archivo');
           ERROR_FILE_NOT_FOUND: showmessage('Archivo no encontrado');
           ERROR_PATH_NOT_FOUND: showmessage('La dirección especificada no existe');
    end;

end;

Salu2 espero que te sirva.
Responder Con Cita
  #3  
Antiguo 14-06-2008
grotero76 grotero76 is offline
Miembro
 
Registrado: feb 2007
Posts: 32
Poder: 0
grotero76 Va por buen camino
Hola Khronos,

gracias por tu respuesta, he encontrado otro método de ejecución de DTS sin falta de usar una función DOS...
Lo pongo a continuación por si le sirve a alguien:

Código:
 
procedure EjecutarDTS;
var
  pkg: Variant;
  i:integer;
begin
  pkg:= CreateOleObject('DTS.Package');
  try
    pkg.LoadFromSQLServer(datasourceName,UserName,Password,,,,,dtsName),'');
    for i := 1 to pkg.steps.count do
      pkg.steps.Item(i).executeinMainThread := True;
    pkg.FailOnError := true;
    pkg.Execute;
    MessageDlg('La ejecución se ha realizado correctamente',mtInformation,[mbOK],0);
  except
  on E: Exception do
  begin
    showmessage('Error = ' + E.Message);
    exit;
  end;
end;
pkg.uninitialize;
pkg:=UnAssigned;
end;

Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Detectar ERROR mjjj Firebird e Interbase 5 29-04-2008 07:17:22
Ayuda con WinExec La__X C++ Builder 2 03-06-2006 05:23:13
Duda con Winexec sagarmar Varios 5 11-05-2006 12:58:17
WinExec karlita_cb Varios 3 18-05-2004 20:52:21
winexec en w2000 ogorut API de Windows 2 23-06-2003 18:41:58


La franja horaria es GMT +2. Ahora son las 23:50:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi