Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2006
friendspark friendspark is offline
Miembro
 
Registrado: nov 2005
Posts: 32
Poder: 0
friendspark Va por buen camino
Ejecutar aplicaciones de forma sincrona

Pues lo dicho, como puedo ejecutar aplicaciones de forma sincrona. Se que asincronamente esta el Shellexecute, pero no creo que me sirva. Os comento...necesito saber el valor de retorno de la aplicacion que ejecuto con el shellexecute. Se que este API devuelve valores en caso de ejecuterse bien, pero no se si me podria devolver este valor; creo que no. Si alguien sabe algo le agradeceria mucho que me lo comentase. Gracias.
Responder Con Cita
  #2  
Antiguo 10-01-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola supongo que lo estás intentando con Delphi, si es así héchale un vistazo a la ayuda de la función ShellExecute donde te informa de los parámetros que acepta y los valores que retorna la función.
Además pasate por aquí alomejor te sirve de ayuda

http://www.clubdelphi.com/foros/showthread.php?t=24107

Sino es así puedes buscar información sobre la función WinExecAndWait.

Espero haberte sido de ayuda

Saludos
Responder Con Cita
  #3  
Antiguo 10-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Podrías utilizar CreateProcess, y averiguar el código de salida con GetExitCodeProcess.
Código Delphi [-]
var
  StartInfo: STARTUPINFO;
  ProccesInfo: PROCESS_INFORMATION;
  dwExitCode: DWORD;
begin
  ZeroMemory(@StartInfo, SizeOf(STARTUPINFO));
  with StartInfo do
  begin
    cb := SizeOf(STARTUPINFO);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := SW_HIDE;
  end;
  Win32Check(CreateProcess(nil, PChar('calc.exe') ,nil, nil, FALSE,
                           CREATE_NEW_CONSOLE, nil, nil, StartInfo, ProccesInfo));
  WaitForSingleObject(ProccesInfo.hProcess, INFINITE);
  GetExitCodeProcess(ProccesInfo.hProcess, dwExitCode);

  ShowMessageFmt('Salida: %d', [dwExitCode]);

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 12-01-2006
friendspark friendspark is offline
Miembro
 
Registrado: nov 2005
Posts: 32
Poder: 0
friendspark Va por buen camino
Muchas gracias por contestar. Al final utilize el CreateProcess, y me ha ido genial. Cabe decir que el programa al que llamaba devolvia un -1 en caso de no funcionar y el GetExitCodeProcess devuelve un Cardinal asi que utilize su valor por defecto en caso de -1-->4294967295 y ya ta.

Gracias por todo.
Responder Con Cita
Respuesta



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
invocar dll de forma asíncrona felixgo Varios 2 25-11-2005 12:03:23
Problema al ejecutar las aplicaciones en otras maquinas Durbed Varios 1 09-08-2005 18:09:43
ejecutar aplicaciones de Linux desde Kylix Paco Lazarus, FreePascal, Kylix, etc. 1 28-06-2005 16:04:34
ejecutar aplicaciones .net galmacland .NET 2 16-03-2005 13:53:35
Parametros al ejecutar Aplicaciones + Aplicaciones en Mi PC NeWNeO Varios 4 19-08-2004 14:01:30


La franja horaria es GMT +2. Ahora son las 02:27:18.


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