Título: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 30 Julio 2005, 11:06 am Hola a todos!
Quien sabe sobre alguna Api que monitoree la integridad de la información en los discos fijos. O sea detectar en el sistema y en todo momento si cree, modifique, copie, movi o borre una información X (no importa cual) en el disco duro. Cómo saber si hubo cambios en la estructura de la información en general mediante la Api o evento del sistema? Gracias! Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: {_The_Alwar_} en 30 Julio 2005, 13:33 pm Yo queria saber si exista algun programa que registre todo movimiento en el disco duro, lectura, escritura, etc, y tb del registro de windows, pero no veo ninguno, y me preguntaba si habria alguna forma de crearlo, pero no e encontrado nada
Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 30 Julio 2005, 21:05 pm Deberia haber alguna Api..
Preguntemosle a nuestro moderador que es toda una autoridad en la materia. Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: Slasher-K en 31 Julio 2005, 00:40 am Como existen las funciones de monitoreo del registro también están las de archivos, pero lo ideal sería hacerlo con un driver como lo hace el RegMon o el FileMon (dos programas excelentes).
Las funciones son FindFirstChangeNotification (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findfirstchangenotification.asp) y FindNextChangeNotification (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findnextchangenotification.asp). Primero se llama a la primera función y luego en un bucle a la segunda. Cuando no se necesite más el handle se debe liberar llamando a FindCloseChangeNotification (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findclosechangenotification.asp). Saludos. Título: Re: C�mo detectar mediante la Api cambios en la informaci�n del disco duro. Publicado por: {_The_Alwar_} en 31 Julio 2005, 00:44 am osita! y yo pensaba que no habia na pa esto! esk hay que preguntar en el sitio adecuado a la persona adecuada, por cierto, esos programas que tu as nombrado que hacen? monitorean archivos y el regisro?
Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 31 Julio 2005, 05:25 am Gracias Anhur!
Siempre nos salvas! ;D Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: sch3m4 en 31 Julio 2005, 16:24 pm este no es el foro adecuado para mi post, pero sí el hilo... ??? He codeado un código para probarlo pero no funciona, cambio el nombre de algún archivo y no me dice nada. Aquí os dejo el código a ver qué le veis:
Código: #include <stdio.h> Creo que no hace falta decir que dicho archivo se encuentra en "D:\mon" :) Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 31 Julio 2005, 17:39 pm No sé si será lo más apropiado pero ahí voy con mi ejemplo.
Use un Timer y un ListBox para esto. Código: Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4 Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 31 Julio 2005, 17:56 pm En este otro intento controlar al mismo tiempo todas las unidades logicas añadiendo dos Apis más a lo anterior.
Pero por más que le di vueltas no me funcionó muy bien. Por poco me convierto en mi propio avatar :( Aquí les dejo un trozo del Código: Private Declare Function GetLogicalDrives Lib "kernel32" () As Long Ahora pregunto: Existe otra via menos alevosa :P - con perdón de Anhur Alguna variable global del sistema o manera de pasarle todas las unidades juntas ??? Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 31 Julio 2005, 18:11 pm Citar He codeado un código para probarlo pero no funciona, cambio el nombre de algún archivo y no me dice nada. Aquí os dejo el código a ver qué le veis: Ah Lympex! Eres admirable hombre, lástima que no tenga suficiente conocimiento en lenguaje C para codearme contigo. De todas formas espero que lo que postee te sirva. Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: sch3m4 en 1 Agosto 2005, 02:20 am he retocado l codigo para k haga lo miso que haces tú con VB, pero tampoco funciona. El código en VB que posteastes tampoco me funciona. Aquí dejo el código en C
Código: #include <stdio.h> Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: goodbye en 1 Agosto 2005, 07:22 am Será la Api WaitForSingleObject
Honestamente a mi me funciona someramente. Debería ser así WaitForSingleObject Handle, &HFFFFFFFF pero con este valor infinito se congela. :( Me dí cuenta que cuando ocurre el evento WaitForSingleObject devuelve 0. Entonces lo que estoy tratando de hacer es mantenerla sin que se congele pero al mismo tiempo que este pediente del proceso. Citar El código en VB que posteastes tampoco me funciona. No puedo decir que sea perfecto :-\ pero el evento se verificará en algún momento. Quizás no sea la manera adecuada, preguntémosle nuevamente a los que más saben. Por último me gustaría volver a citar a Anhur y fíjense en lo que dice: 'luego en un bucle a la segunda' Citar Las funciones son FindFirstChangeNotification y FindNextChangeNotification. Primero se llama a la primera función y luego en un bucle a la segunda. Saludos. Título: Re: Cómo detectar mediante la Api cambios en la información del disco duro. Publicado por: Slasher-K en 2 Agosto 2005, 00:45 am El siguiente ejemplo funciona perfectamente.
Código: Option Explicit Lympex, tu error es que se debe llamar a FindNextChangeNotification luego de que la función WaitForSingleObject devuelva OBJECT_WAIT_0. Lo que hace es reestablecer el objeto a non-signaled. Saludos. |