Ver Mensaje Individual
  #3  
Antiguo 13-11-2010
santus santus is offline
Miembro
 
Registrado: ene 2006
Posts: 130
Reputación: 19
santus Va por buen camino
no se que programa quieres controlar, pero yo hice algo así con el VLC Media Player.
Tienes varios comandos que puedes manejar que son muy utiles.
Arma una lista de reprodución con un TStringList. Agregas todos los archivos que quieras reproducir, y luego lo guardas con el método SaveToFile como "ListaRep.m3u".

Luego llamas a la aplicación con los siguientes parámetros:

Código Delphi [-]

ShellExecute(0,nil,
        pchar('C:\Archivos de programa\VideoLAN\VLC\vlc.exe'),
        pchar('ListaRep.m3u  --one-instance --loop -f  --no-video-title-show'),
        'C:\directorio_donde_esten_los_archivos',SW_NORMAL);
--one-instance: Solo abre una instancia del VLC. Útil para no abrir mas de un reproductor a la vez.
--loop: Ejecuta la lista una y otra vez.
-f: Pantalla completa.
--no-video-title-show: no muestra el nombre del archivo que se esta reproduciendo.

Para matar la aplicación VLC yo utilizo la siguiente funcion:

Código Delphi [-]

function MatarProceso(ExeFileName: string): integer;
const
  PROCESS_TERMINATE=$0001;
var
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle;
  FProcessEntry32: TProcessEntry32;
begin
  result := 0;

  FSnapshotHandle := CreateToolhelp32Snapshot
                     (TH32CS_SNAPPROCESS, 0);
  FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
  ContinueLoop := Process32First(FSnapshotHandle,
                                 FProcessEntry32);

  while integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
         UpperCase(ExeFileName))
     or (UpperCase(FProcessEntry32.szExeFile) =
         UpperCase(ExeFileName))) then
      Result := Integer(TerminateProcess(OpenProcess(
                        PROCESS_TERMINATE, BOOL(0),
                        FProcessEntry32.th32ProcessID), 0));
    ContinueLoop := Process32Next(FSnapshotHandle,
                                  FProcessEntry32);
  end;

  CloseHandle(FSnapshotHandle);
end;

Espero haberte sido de ayuda. Saludos.
__________________
"El ordenador nació para resolver problemas que antes no existían." Bill Gates.
Responder Con Cita