Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2012
Anel Hernandez Anel Hernandez is offline
Miembro
 
Registrado: mar 2005
Posts: 94
Poder: 20
Anel Hernandez Va por buen camino
Ejecutar y vigilar varios programas a la vez

Hola,

necesito mandar a correr un programa varias veces con distintos parametros. pero necesito mandar a la vez la misma cantidad que numero de nucleos tenga el micro. Cuando termine uno, mandar otro y asi hasta terminar todos.

Es decir, si tengo 4 nucleos y debo mandar mi programa a ejecutar 31 veces, primero debo mandar a ejecutar 4 veces el programa. y cada vez que se cierre uno mandar otro manteniendo el numero de programas activo en 4. Cuando se acerque a 31 pues quedaran corriendo 3, 2 y 1 hasta que termine.

el numero de micros lo leo con la variable NumMicro.

hasta ahora lo hago de esta manera:
Código Delphi [-]
var
 i:integer;
 Info:TShellExecuteInfo;
 programa:string;
begin

 for i:=1 to CheckListBox1.items.count do begin
  if CheckListBox1.Checked[i-1] then begin
  
   with Info do begin
    cbSize := SizeOf(ShellExecuteInfo);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Handle;
    lpVerb := 'open';
    lpFile := PChar(DirT+programa);
    lpParameters := PChar(checklistbox1.items.Strings[i-1]);
    lpDirectory := PChar(ExtractFileDir(checklistbox1.items.Strings[i-1])+'\');
    nShow := SW_SHOW;
   end;
   ShellExecuteE@INFO);
   Repeat
    Application.ProcessMessages;
   until (WaitForSingleObject( Info.hProcess,500)<> WAIT_TIMEOUT);

No quisiera usar hilos. Quisiera modificar este algoritmo de forma que identifique cada proceso y los vigile.

Pudieran ayudarme
Gracias
Responder Con Cita
  #2  
Antiguo 11-01-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Ahora mismo no recuerdo: ¿Tiene definida, Delphi, la clase TProcess? En Free Pascal sí existe y permite controlar muy bien cuándo termina la ejecución del programa, e incluso comunicarse con él vía "pipes".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 17-01-2012
Anel Hernandez Anel Hernandez is offline
Miembro
 
Registrado: mar 2005
Posts: 94
Poder: 20
Anel Hernandez Va por buen camino
re

Hola,

El Tprocess no lo encuentro en Delphi,

pudiera hacerse lo ke kiero con WaitForMultipleObjects()?????

gracias
Responder Con Cita
  #4  
Antiguo 23-01-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Pues la verdad es que no lo sé. A mi se me han terminado las ideas
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
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
ejecutar programas desde el explorer karocs .NET 3 10-12-2012 05:01:09
Ejecutar programas diferentes en 2 monitores robertosc Varios 8 26-09-2008 17:59:32
Acceder con varios programas a las mismas tablas .dbf (en el mismo pc)-RESUCITADO :) Wonni Conexión con bases de datos 0 11-08-2007 19:10:36
ejecutar programas DOS artemisa Varios 6 04-05-2007 23:46:48
Ejecutar programas del Shell lbraun Lazarus, FreePascal, Kylix, etc. 0 05-07-2006 05:37:02


La franja horaria es GMT +2. Ahora son las 08:09:44.


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