![]() |
Reto
Hola, a ver si alguien es capaz de realizar algo así, os cuento.
Se trata de FileSystemWatcher. https://www.levelextreme.com/Home/Sh...or=23&ID=38881 Se trata de averiguar cuando algo en la carpeta seleccionada cambia. Lo quiero implementar para poder detectar en tiempo real si hay un cambio en alguna DLL y que avise al usuario de que tiene que actualizar. Espero haberme explicado bien :) Hay bastante información en Internet, pero no se como implementarlo, igual lo mejor es hacer un ocx. A ver si se os ocurre algo :) Gracias. |
@Nitzer, mi proposición:
Hacerlo en un Timer, cada minuto o algo así, para no hacer demasiadas I/O |
@kuk, esa solución siempre está presente, pero la idea es hacer algo que en otros lenguajes es relativamente sencillo :).
Lo he probado en Visual Basic y funciona perfectamente, hay varios ejemplos en internet. Pero no se como implementarlo en Cobol. |
Buenas @Nitzer, estuve leyendo un poco del tema de monitoreo de carpetas es mas facil en otros lenguajes como vb como comentas, pero podrias probar hacer llamadas cada cierto tiempo a la función FindFirstChangeNotificationA de libreria kernel32 que se puede llamar desde pwc ....
https://docs.microsoft.com/en-us/win...enotificationa Saludos |
Pues Fastpho he estado probando, pero no consigo el resultado :(
he incluido este código, según he visto por Internet como usar la Api. Código COBOL:
|
Nitzer estoy mirando desde el celular ,me parece q el flag 0 esta mal y empezaria por leer una carpeta del disco local para saber si funciona,no se funcionara con disco de red, que valor tes esta retornando ?
|
@Nitzer, el BY VALUE 0 no lo puede ser, como dice @fastpho.
Tienes que elegir uno de los siguientes valores: Cita:
|
@Kuk, U: es una carpeta local, le llamo U de Unica :)
Ya vi los valores, pero como le paso el primero por ejemplo 0X0000001 , no tengo ni idea. |
@Nitzer, los flags son los filtros o eventos que queres monitorear , los valores serian
Código:
FILE_NOTIFY_CHANGE_FILE_NAME = H1 'decimal 1 |
@Nitzer, lo que empieza por 0x es en Hexadecimal. Con lo cual, sería
Código COBOL:
|
@KUK, pues no tengo narices.
lo que he notado es que el retorno me suma 4 cada vez que le doy al botón donde he puesto el código. Pero no consigo lo que yo quiero :( |
@Nitzer, Esta bien que te un valor distinto el retorno de la funcion te paso un ejemplo
Código COBOL:
Código COBOL:
|
Gracias a todos, pero al final voy a tirar por el método mas sencillo y sin lios :))).
Al abrir cada formulario le hago un 'CBL_CHECK_FILE_EXIST2' y guardo sus valores iniciales. Luego coloco un timer cada 5 minutos que lo vuelva a hacer y compare con el valor inicial, si es diferente ya se que se ha modificado la DLL y le informo al usuario que se actualice :) Lo que no se es si puedo saber desde un formulario en que DLL se encuentra, no he encontrado información al respecto, no se si existe esa posibilidad, aunque tampoco he podido encontrar como el form sabe como se llama, es decir no he encontrado una propiedad como Name del formulario. |
1 Archivos Adjunto(s)
Cita:
Cita:
Te voy a pasar una herramienta muy útil que te va a encantar, sobre todo el "Generate" :cerv: |
Interesante herramienta kuk :) Ya podían haber hecho la pantalla algo mas grande :)))
A ver si encontramos donde están las propiedades ocultas del form, que seguro que las tiene. Gracias por el aporte. |
@Nitzer, pincha en View luego en Generate y mira el contenido, ya verás ;)
|
Cita:
Siempre digo que aprovechamos del Netcobol solo una pequeña parte. |
reto monitoreo
1 Archivos Adjunto(s)
@Nitzer , Me quede con las ganas con tu reto , para monitorear tu carpeta, y meti algunas lineas para ver que se puede hacer y me avisa cualquier cambio que produzca en la carpeta que se esta monitoreando, al borrar modificar o crear cualquier archivo , no logre todavia cual archivo
Saludos |
| La franja horaria es GMT +2. Ahora son las 17:06. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.