FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
Ya, eso sería una solución aunque la verdad no me resulta muy elegante. ¿No hay forma de saber cuando se cierra el visor pdf para acto seguido borrar el fichero que ha abierto? Saludos
__________________
Be water my friend. |
#2
|
||||
|
||||
Depende, si los abres mediante RunAndWaitShell(....,sw_showmodal), justo al cerrar el pdf se podrá borrar por su nombre.
Código:
Tratarpdf( i ) cFicheroPdf = 'documento'+inttostr(i)+'.pdf'; RunAndWaitShell( cFicheroPdf, ... ..., sw_showmodal) borrar( cFicheroPdf) De otra forma no sé, porque imagino que se tendrá que estar verificando si todavía existe. Algo como lo que comenté antes, mantener una lista de los pdfs que se han abierto y cada cierto tiempo hay que comprobar si está todavía la ventana abierta, en caso contrario se podrá borrar. A ver si encuentras algo sobre windows.findwindow
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 20-08-2018 a las 19:33:57. |
#3
|
||||
|
||||
No puedo usar RunAndWaitShell porque son procesos no modales, buscaré lo que me comentas de windows.findwindowa ver qué veo.
Gracias Casimiro y ASAPLTDA. Saludos
__________________
Be water my friend. |
#5
|
||||
|
||||
Parece que el problema que tiene es saber cuándo ha cerrado el usuario el fichero pdf, para proceder a eliminarlo.
No creo que haya forma de saberlo mediante el nombre de la ventana tampoco porque cada uno puede usar un visor de pdfs distinto y el nombre también será distinto. Creo que la solución pasa por saber qué pdfs se han abierto y luego intentar borrarlos, pero ¿cuándo lo ha cerrado el usuario? Me parece que no va a quedar otra que el bucle: Código:
for i=1 to 100 if fileexists('documento'+inttostr(i)+'.pdf') then deletefile('documento'+inttostr(i)+'.pdf') |
#6
|
||||
|
||||
Andalaleche.... pensaba que esto del "RunAndWaitShell" dejaba "pillado" al programa hasta que no cerrara el visor.
Gracias y un saludo
__________________
Be water my friend. |
#7
|
||||
|
||||
No, por eso decía que podías borrarlo al "regresar".
|
#8
|
||||
|
||||
He visto alguna implementacion de RunAndWaitShell y personalemnte no me gustan mucho. Para no bloquear la app usan la chapuza de ProcessMessages y el flujo de la app puede quedar descontrolado. Prefiero que ShellExecuteEx sea bloqueante hasta terminar la ejecución, pero en un Thread. Tras terminar, el hilo envía un mensaje a la ventana que indicará el fin de la ejecución.
Un ejemplo:
El sistema puede complicarse un poco más si queremos ejecutar varios Trheads al mismo tiempo para identificar cual de ellos se cierra y así controlar que visor se cerró. Saludos. Última edición por escafandra fecha: 21-08-2018 a las 12:40:47. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Gestionar archivos adjuntos | Delphitest | Varios | 6 | 22-12-2014 21:20:43 |
Archivos Temporales al usar un Query | mrmanuel | Conexión con bases de datos | 3 | 05-09-2005 18:33:42 |
Archivos temporales generados por TQuerys | Balda | Conexión con bases de datos | 0 | 14-04-2005 14:18:29 |
Como Creo Archivos Temporales en un programa hecho en red | jorge restrepo | Firebird e Interbase | 3 | 23-12-2003 18:02:23 |
|