Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 29-08-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 19
paldave Va por buen camino
Thumbs up

Hola.
Puedes ejecutar programas secuencialmente, lo único que tienes que hacer es indicarle que espere hasta que el proceso termine antes de llamar al siguiente. Hablando más claramente (en código) sería:
Código Delphi [-]
type
  TLaunchMode = (lmNormal, lmMaximized, lmMinimizedActive, lmMinimizedInactive, lmHide);
  TPriority =(pIdle, pNormal, pHigh,pRealTime);

function LaunchExtended(Filename:String; WaitForEnd: Boolean; TimeForWait:Cardinal=0; Parameters, StartFolder:String; LaunchMode:TLaunchMode; Priority:TPriority):Integer;
var
  Directorio, ArchivoyParametros: PChar;
  ModoMostrar, Prior: Integer;
  StartupInfo:TStartupInfo;
  ProcessInfo:TProcessInformation;
  Cancel:Boolean;
begin
  
if TimeForWait=0 then TimeForWait:=INFINITE;

  if Parameters='' then
      ArchivoyParametros:=PChar(FileName)
  else
      ArchivoyParametros:=PChar(FileName+' '+Parameters);

  if StartFolder='' then
    Directorio:=nil
  else
    Directorio := PChar(StartFolder);

  case LaunchMode of
    lmNormal: ModoMostrar := SW_SHOWNORMAL;
    lmMaximized: ModoMostrar := SW_SHOWMAXIMIZED;
    lmMinimizedActive: ModoMostrar := SW_SHOWMINIMIZED;
    lmMinimizedInactive: ModoMostrar := SW_SHOWMINNOACTIVE;
    lmHide: ModoMostrar := SW_HIDE;
  end;

  case Priority of
    pIdle: Prior:=IDLE_PRIORITY_CLASS;
    pNormal: Prior:= NORMAL_PRIORITY_CLASS;
    pHigh: Prior:= HIGH_PRIORITY_CLASS;
    pRealTime: Prior:=REALTIME_PRIORITY_CLASS;
  end;

 //Ejecuta el archivo
   FillChar(StartupInfo, Sizeof(StartupInfo), #0);
   StartupInfo.cb := Sizeof(StartupInfo);
   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow := ModoMostrar;
     if (CreateProcess(nil, ArchivoyParametros, nil, nil, False, CREATE_NEW_CONSOLE or Prior, nil, Directorio, StartupInfo, ProcessInfo)) then
    begin
        result:=0;
        if WaitForEnd then   Result:=WaitforSingleObject(ProcessInfo.hProcess, TimeForWait);
     end
     else
         result:=-1;
end;
Debes llamar el procedimiento por ejemplo de la siguiente forma:
Código Delphi [-]
LaunchExtended(FileName, WaitForEnd, TimeForWait, Parameters, StartFolder, LaunchMode, Priority:TPriority)
por ejemplo
Código Delphi [-]
LaunchExtended('C:\Windows\System32\Calc.exe', True, 0,'', 'C:\Windows\System32', lmNormal, pNormal)
donde Filename es el nombre del archivo ejecutable que deseas correr; WaitForEnd es un booleano que indica si quieres que la rutina espere a que el ejecutable se cierre para retornar; TimeForWait es la cantidad de milisegundos que la rutina debe esperar por que el ejecutable se cierre antes de retornar, si no se ha cerrado en ese tiempo retorna igual, si quieres que espere indefinidamente hasta que se cierre debes especificar 0 en este parámetro; Parameters son los parámetros que quieres pasarle al ejecutable; StartFolder es la carpeta de inicio para ese ejecutable (normalmente la misma en que se encuentra); LaunchMode es el modo en que quieres que la ventana se ejecute (normal, minimizada, maximizada, etc); y Priority es la prioridad con que quieres que se ejecute el archivo (baja, normal, alta, etc). La rutina devuelve 0 si el archivo se pudo ejecutar o -1 si no se pudo ejecutar.

Última edición por paldave fecha: 29-08-2007 a las 03:13:11. Razón: Pequeño error en el código
Responder Con Cita
 



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
Ayuda Urgente!!!! abogado C++ Builder 2 08-12-2005 20:12:12
Ayuda URGENTE Iskariote Varios 4 13-07-2005 00:15:59
Ayuda con InstallShield juanchi Varios 2 19-10-2004 19:01:42
Ayuda Para Installshield O Algo Parecido cmena Varios 2 29-08-2004 22:29:28
Creación de .cab con installshield ¡Ayuda!. voci Varios 0 25-02-2004 22:08:29


La franja horaria es GMT +2. Ahora son las 20:57:29.


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