Ver Mensaje Individual
  #8  
Antiguo 07-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Buscate la funcion RunAndWait32 que anda por el foro.

El lanzador abre el programa de Bases de datos y se queda esperando con esa función hasta que termine el programa de BBDD.

El programa de bases de datos pone el Timer en marcha y cuando el tiempo expire, informa al usuario y se cierra el programa.

Ahora que se ha cerrado, el lanzador continua su ejecución y cierra el sistema con el Logoff.

Como el programa lanzador se está ejecutando en el contexto de los demás procesos, si cerrará el sistema bien.

EDITO:
Código Delphi [-]
var 
StartupInfo: TStartupInfo; 
ProcessInfo: TProcessInformation; 
begin 
FillChar (StartupInfo, SizeOf(StartupInfo), #0); 
StartupInfo.cb := SizeOf(StartupInfo); 
Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'), 
StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'), 
StartupInfo, ProcessInfo ) ); 
  WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
ShutDownwindows(logoff+ewx_force);
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 07-04-2006 a las 00:19:20.
Responder Con Cita