![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Esperar hasta que se cierre Excel
Estoy haciendo una aplicación que me genera un informe en Excel manejandolo a pelo
![]() Utilizo el siguiente código para abrir Excel y mostralo:
salu2 |
#2
|
|||
|
|||
![]() Ya lo he solucionado
![]() ![]() Este sería el código definitivo:
Salu2 |
#3
|
|||
|
|||
Ejecutar aplicacion y esperar a que termine.
Hola yo utilizo la siguiente funcion para llamar a un programa externo y esperar hasta que termine.
Código:
function WinExecAndWaitEx(FileName: TFileName; TimeOut: DWORD): Boolean; var {$IFDEF WIN32} StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; ExCode,Res : DWORD; {$ELSE} hAppInstance: THandle; Msg : TMsg; aBuf : array[0..255] of Char; {$ENDIF} begin Result := False; {$IFNDEF WIN32} hAppInstance := WinExec(StrPCopy(aBuf, FileName), SW_NORMAL); if (hAppInstance < HINSTANCE_ERROR) then exit else repeat while PeekMessage(Msg, 0, 0, 0, pm_Remove) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; until (GetModuleUsage(hAppInstance) = 0); Result := True; {$ELSE} FillChar(StartupInfo, SizeOf(TStartupInfo), 0); with StartupInfo do begin cb := SizeOf(TStartupInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_NORMAL; end; if CreateProcess(nil,PChar(FileName),nil,nil,False,NORMAL_PRIORITY_CLASS, nil,nil,StartupInfo,ProcessInfo) then begin Res := WaitforSingleObject(ProcessInfo.hProcess, TIMEOUT); if (Res = WAIT_TIMEOUT) then begin TerminateProcess(ProcessInfo.hProcess,0); CloseHandle(ProcessInfo.hProcess); Result := False; end else begin GetExitCodeProcess(ProcessInfo.hProcess, ExCode); CloseHandle(ProcessInfo.hProcess); Result := True; end; end; {$ENDIF} end; La llamo asi: Código:
Result := WinExecAndWaitEx(FileName,INFINITE); Saludos Fernando |
![]() |
|
|
![]() |
|