Hola experto cuando creo mi ejecutable quisiera ocultar la tabla usuarios porque el que tiene instalado el vfp puede ver el archivo y cambiar el usuario y password, ademas me podría explicar como hacer para que nadie pueda cambiar la configuración del reloj de mi pc y que siempre que habrá mi programita este actualizado. Gracias
Tu pregunta es similar a la de muchos usuarios que tienen esa necesidad. Vamos a ver: Ocultar tabla de usuarios: Lamentablemente con tablas sueltas no es posible porque la seguridad de las tablas es nula si se quiere abrir con el entorno de desarrollo. Para seguridad deberías usar alguna base de datos como mysql o ms sql server. Pero siempre hay algún truco. Te paso algunos que podrías utilizar. Uno es usar un campo numérico en la misma tabla que se llame, por ejemplo "validar". En este campo usas una fórmula que vos conozcas que de como resultado un número para saber que la clave fue puesta ahí por tu sistema y no por una persona vía vfp. Algo así: mClave="keystone123" mValidar=int((asc(mClave)*len(mClave)^2)/15) Entonces, cada vez que lees la clave te la comparas contra esa fórmula y verificas que tenga el mismo valor, si no lo tiene pones un cartel "la clave ha sido modificada" Otro (que se puede usar con el anterior) sería hacerte un programita o función que encripte los datos, pero no algo de terceros sino podría ser un programita propio usando la función chrTran() Veamos: Vamos a crear un prg que se llama encripta (modi comm encripta) y adentro le ponemos: LParameter LCadena, LAccion if lAccion="E" && Encriptar return chrTran(LCadena,"abcdefghij","opnjuiklou") else return chrTran(LCadena,"opnjuiklou","abcdefghij") Endif Entonces guardas la clave encriptada así: replace clave with encriptar(clave,"E") y la lees desencriptando mClave=encriptar(usuarios.clave,"D") Más caracteres pongas en las cadenas de chrTran mejor, siempre que las dos cadenas tengan la misma longitud. Para ocultar el archivo directamente desde tu aplicación podrías usar una api de Windows Podrías crear un programa que se llame "ocultar" y dentro de el pondrías algo así: LParameter LArchivo DECLARE SetFileAttributes IN KERNEL32 STRING lpFileName,LONG dwFileAttributes #DEFINE FILE_ATTRIBUTE_HIDDEN 0x00000002 =SetFileAttributes(LArchivo,FILE_ATTRIBUTE_HIDDEN) Le deberías pasar la ruta de acceso completa al archivo de usuarios, así: =ocultar("c:\sistema\datos\usuarios.dbf") Otra opción es cambiar el primer byte de la tabla por un carácter que vos solo conoces (tu sistema) y entonces, la tabla queda inutilizable para los demás usuarios. Eso se hace abriendo el archivo con fOpen y demás comandos de bajo nivel. * Impedir que cambien la hora. Si no tienes un sistema operativo como windows 2000 eso no se puede impedir. Pero podrías usar un método similar a una alarma: Por ejemplo, una reja impide que entren a una casa, una alarma no lo impide, pero alerta que lo hicieron. Entonces podes hacer que tu sistema monitoree la hora y cuando alguien la intenta arreglar, tu sistema la arregla. En realidad te conviene buscar un programita de terceros que se instale en tu computadora y que haga esta validación de seguridad o declarar los usuarios correctamente para que no puedan cambiar la hora; un administrador y usuarios comunes. Bueno, espero haberte ayudado. Estoy a tu disposición