• Domingo 22 de Diciembre de 2024, 13:00

Autor Tema:  Re: Como Encriptar una DB (Access)  (Leído 10926 veces)

Fernando H.

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« en: Viernes 14 de Marzo de 2003, 18:25 »
0
Mi pregunta es alguine como se puede encriptar una Base de Datos de access con una funcion de Visual Basic o algun Modulo, Rutina, Procedimiento o en todo caso si es posible realizar lo que les explico si alguin tiene la solucion por favor y lo pudiera compartir conmigo gracias este es mi correo  gracias :good::think:

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #1 en: Viernes 14 de Marzo de 2003, 19:43 »
0
Has probado a poner una contraseña a la BD (supongo que se trata de una BD de Access)?
Yo hace unos días preguntaba lo mismo que tú  y al final opté por esta solución hasta que encuentre otra mejor.
Si dedides ponerla una contraseña, luego para abrir la BD sería:
OpenDataBase(C:mi_carpetamiBD.MDB",False,False,";pwd=contraseña")
Bueno, espero que te haya servido de algo.
Saludos.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #2 en: Viernes 14 de Marzo de 2003, 19:44 »
0
En cuanto te des una vuelta por los foros te vas a encontrar multitud de utilidades que te hacen lo que buscas.

Como ejemplo te adjunto esta que he encontrado en "La Web del Programador"

Suerte

Por favor: No bajéis este fichero. NO FUNCIONA...:bad:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #3 en: Viernes 14 de Marzo de 2003, 23:34 »
0
Hola otra vez.
He bajado el fichero que tan amablemente nos ha dejado J.M.Movilla y he encriptado y desencriptado una base de datos de Acces y he obtenido los siguientes resultados:
Tiempo: Tarda una eternidad en cualquiera de los dos procesos (encriptar y desencriptar)
Una vez encriptada: Acces informa de que la esturctura no es de una base de datos y no permite abrirla (Excelente. De este modo que bien protegida)
Desencriptada: Acces dá el mismo mensaje que en el anterior caso y tampoco permite abrirla. Esto ya es más grave pues, según parece, si encriptamos la BD una vez queda inutilizada para posteriores usos.
La idea es buena, pero habría que buscar otro método que nos permita su reutilizacón.
En fin, entre todos, tal vez logremos encontrar algo bueno.
J.M. no te tomes a mal mi comentario. Nada más lejos de mi intención que tratar de molestar u ofender a nadie.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #4 en: Sábado 15 de Marzo de 2003, 12:39 »
0
Amigo Miguel

Te ruego sepas disculparme por darte esa orientación sin haber probado previamente que el consejo era bueno. Supuse que el proyecto funcionaría, pero he hecho yo la prueba y efectivamente tiene el defecto de su lentitud (encripta el fichero bit a bit y con un algoritmo lentorro...) y sobre todo al desencriptar el fichero intermedio nos encontramos con que presenta una estructura diferente a la del original... INCOMPRENSIBLE!!!  Habrá que reportárselo a su autor.

Ruego de nuevo disculpas y prometo continuar interesado en buscar nuevas soluciones EFECTIVAS.

Saludos

Fernando H.

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #5 en: Sábado 15 de Marzo de 2003, 17:44 »
0
Seguro que debe de haber una funcio o rutina que encripte en realidad hay programas que desifran la contraseña de la base de datos y seria mejor encriptarla como archivo gracias por sus respuestas nos vemos:good:

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #6 en: Sábado 15 de Marzo de 2003, 18:45 »
0
Amigos Fernando y Miguel:

He encontrado estas dos aplicaciones que encriptan y desencriptan perfectamente:

La primera (CheshireCodifica.zip) está muy bien presentada y tiene la ventaja de que puedes al mismo tiempo comprimir y codificar el fichero; pero es bastante lenta, incluso sin comprimir.

La segunda (EncriptarDatostipoNuevo.zip) va a toda pastilla!!! Parece mentira que haciendo el proceso bit a bit (lógicamente el encriptado ha de hacerse así) pueda llevar esa marcha. Una base de datos de 30 Mb se la ha ventilado en 36 segundos!!! Y HE COMPROBADO QUE ES VALIDO EL FICHERO DESENCRIPTADO.

Me alegro de haberos dado la solución (espero...)
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #7 en: Sábado 15 de Marzo de 2003, 18:47 »
0
Veo que sólo se ha adjuntado un fichero; he aquí el otro.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

MiguelPG

  • Miembro activo
  • **
  • Mensajes: 93
    • Ver Perfil
Como Encriptar una DB (Access)
« Respuesta #8 en: Sábado 15 de Marzo de 2003, 19:27 »
0
:jumpie:
Hola J.M.
He probado el fichero EncriptarDatostipoNuevo que has enviado y, efectivamente, va a toda pastilla y además no inutiuliza la BD.
Estupendo. Felicidades.

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #9 en: Lunes 16 de Enero de 2006, 23:45 »
0
Hola Genios:

Gracias por el código posteado, funciona muy bien, pero quiero adjuntarlo a un programilla que estoy creando de tal forma que cuando se cargue el soft, se desencripte la base de datos de access y cuando se salga de la aplicación, se encripte de nuevo.

Como hago para saber a través de VB, si la BD de access esta encriptada o no?

Estoy utilizando el método de encriptamiento del archivo EncriptarDatostipoNuevo.zip que nos ha compartido el amigo J.M.Movilla.

Gracias por cualquier respuesta.

Saludos,

Mellileo!!
Saludos...

Mellileo!!

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #10 en: Martes 17 de Enero de 2006, 22:37 »
0
Cita de: "Mellileo"
Como hago para saber a través de VB, si la BD de access esta encriptada o no?
Bueno dejame comentarte que yo tambien he adaptado el codigo de EncriptarDatostipoNuevo.zip a mi proyecto y lo que he hecho para saber si la BD esta encriptada es esto:
Creo una conexion con ADO, y si la BD esta encriptada, al intentar abrir la conexion, VB te va dar un Error: "No se reconoce el Formato de la Base de Datos", la cuestion esta en darle tratamiento a este error:
Código: Text
  1.  
  2. Dim Data As Connection
  3. On Error GoTo errMgr
  4. Set Data = New Connection
  5. Data.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\Data1.mdb;Persist Security Info=False;JET OLEDB:DATABASE PASSWORD=123456"
  6. Data.Open ' Si la BD esta encriptada aqui te va dar el error
  7. errMgr:
  8.     If Err.Number <> 0 Then
  9.         Select Case Err.Number
  10.             ' Por si la BD esta encriptada
  11.             Case -2147467259
  12.                 ' AQUI VA EL CODIGO DE ENCRIPTADO/DESENCRIPTADO
  13.                 Data.Open
  14.             Case Else
  15.                 MsgBox Err.Description, vbInformation, "Error: " & Err.Number
  16.         End Select
  17.     End If
  18.  
  19.  
Espero te sirva
Saludos :suerte:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #11 en: Miércoles 18 de Enero de 2006, 17:32 »
0
Hola jc_moty:

Gracias por tu aporte, pues tu idea ha funcionado de maravilla, he logrado que la bd se desencripte al cargar el soft y se encripte al salir del él.

Mil gracias por tu ayuda!!

De igual manera le doy las gracias a J.M.Movilla por el código que compartió!

Saludos,

Mellileo!!
Saludos...

Mellileo!!

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #12 en: Lunes 30 de Enero de 2006, 18:53 »
0
Citar
Fernando H:

Seguro que debe de haber una funcio o rutina que encripte en realidad hay programas que desifran la contraseña de la base de datos y seria mejor encriptarla como archivo gracias por sus respuestas nos vemos

Si es verdad pueden conseguirse programas por ahi que permitan entrar a BD Access con clave, como estoy haciendo otras cosas, pues no me he puesto a probar estos fuentes que encriptan y desencriptan la BD, pero una pregunta para quienes ya lo han usado o anexado a sus programas en desarrollo...

La BD está encriptada, al cargar el programa la desencripta para trabajar con ella y al cerrar la aplicacion, vuelve a encriptar la BD, pero mientras el programa está cargado, la BD está desencriptada? o la encripta y la desencripta en cada operacion de registros? porque si el programa la mantiene desencriptada mientras el programa esta en ejecución, entonces puede accesarse a ella por el propio Access si no tiene clave, si si la tiene, tal vez con algun programa pueda romperse esa clave no?  :unsure:

Un programa para cualquier local o empresa, siempre tienen cargada la aplicacion, no la cierran y abren cada vez que haran algo, sino al terminar el dia y cerrar la oficina o tienda.  Si encripta y desencripta en cada operacion de registros es perfecto, si mas bien, solo encripta y desencripta entre el estar ejecutado el programa y no, pues no si hay una pequeña brecha de inseguridad sobre todo si la BD mantiene datos delicados e importantes para alguna compañia.

Bueno ahi ta pa que me digan quienes ya le han dado viaje a usar esto en sus programas para serlos más seguros , y hacer de este mundo, un mundo mas seguro hehehe  :hola:
Si esto es Leído por accidente, induzca al vomito

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #13 en: Martes 31 de Enero de 2006, 02:23 »
0
Excelente observacion UserCode, estoy desarrollando una aplicacion a la cual le he anexado el codigo para el encriptado/desencriptado de la BD y la desencripta al abrir el sistema y al cerrarlo la vuelve a encriptar, por lo que he protegido la BD con contraseña, sin embargo como vos señalas, seguramente hay programas para romper esta contraseña, lo que he pensado es en poner un titulo a la BD de Access, de tal manera que si rompen la contraseña, la ventana de Access tomara el titulo que le he colocado, y desde el sistema o desde otro programilla que se inicie con Windows, estar buscando cada segundo una ventana con ese nombre y si la encuentra que la cierre (obviamente para hacer esto seria con unas cuantas llamadas a las API's).

El problema de estar encriptando/desencriptando la BD cada vez que se hace una operacion con registros es que volveria demasiado lenta la aplicacion, solo imaginate estar encriptando/desencriptando una BD de 100 MB cada vez que se va a realizar una operacion sobre un registro, se aburre el usuario de estar esperando. Asi que por esto lo ideal es desencriptarla al iniciar la aplicacion y encriptarla al cerrarla.

El dilema es: ¿Como proteger la BD mientras la aplicacion esta abierta?, me parece que cada quien tendra que usar su imaginación.


Saludos :comp:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

Mellileo

  • Miembro MUY activo
  • ***
  • Mensajes: 110
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #14 en: Martes 31 de Enero de 2006, 15:15 »
0
Hola Genios:

Con relación a esto:
Citar
lo que he pensado es en poner un titulo a la BD de Access, de tal manera que si rompen la contraseña, la ventana de Access tomara el titulo que le he colocado, y desde el sistema o desde otro programilla que se inicie con Windows, estar buscando cada segundo una ventana con ese nombre y si la encuentra que la cierre (obviamente para hacer esto seria con unas cuantas llamadas a las API's).

Cómo logro que una aplicación quede residente en memoria y se ejecute constantemente??, me imagino que lo que acota jc_moty tiene que ver con eso... y sería genial, pero con qué API's logro hacer esto?? o si alguien tiene un ejemplo  que de pinitos en el tema le quedaría eternamente agradecido!!
Saludos...

Mellileo!!

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #15 en: Martes 31 de Enero de 2006, 19:00 »
0
Cita de: "Mellileo"
Cómo logro que una aplicación quede residente en memoria y se ejecute constantemente?
Bueno, en el evento Load del form Principal o en el procedimiento Sub Main, tendrias que anexar estas lineas de codigo:
Código: Text
  1.  
  2.     ' que la aplicacion no aparezca en las tareas de Windows
  3.     App.TaskVisible = False
  4.     ' que oculte el form
  5.     FormPrincipal.Hide
  6.  
  7.  
Y para que la aplicacion inicie con Windows, supuestamente hay que ejecutar este codigo (me lo encontre pora ahi, pero aun no lo he probado):
Código: Text
  1.  
  2. Shell "reg add hklm\software\microsoft\windows\currentversion\run /v NOMBRE_DE_LA_CLAVE /t reg_sz /d RUTA_DEL_EJECUTABLE /f"
  3.  
  4.  
Espero te sirva :comp:
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #16 en: Martes 31 de Enero de 2006, 22:35 »
0
que bien jc_moty al tener listo esto para tus desarrollos todo lo que hagas junto con lo anexado y los ajustes que le haras, sera algo casi impenetrable (digamos casi por si acaso hehe).  Si imaginense, llegan en la mañana a la empresa, encienden la PC y el programa desencripta la BD, y cierra el programa al cerrar la oficina practicamente al final del dia, todo un dia la BD desencriptada, y es verdad, eso de encriptar y desencriptar en cada operacion de registros imposible.

En una empresa donde hice algo, pude copiarme en un pendrive los fuentes de algo que alguien les hizo pero no se los termino, no sé pq, pero de esos fuentes si obtuve algunas cosas interesantes, un codigo que hace un Logs, cualquier error que el programa produsca, se crea un TXT y lo guarda en una carpeta llamada "Error" si la carpeta no existe la crea y guarda el TXT, bajo el nombre de la Fecha y la hora, si no mal recuerdo.  Entonces si el progama presenta problemas, simplemente se le puede decir, mandenme la carpeta Error o los archivos de esa carpeta por correo o uno va, la copia y ahi sale, la Fecha, hora, e incluso Sesion de Usuario, y Error y el Form en el que se produjo.

Codigo creador de Logs:
Informa de la descripcion del problema, Form donde se produjo el error, fecha, hora, usuario (en caso de ser un programa con sesiones de usuario, login, psswd, etc)
Esto va en un Modulo:
Código: Text
  1.  
  2. 'Para la ventana de Aviso de Ocurrio un Error:
  3. Public archivos As New FileSystemObject
  4. -------------------------------------------------------------
  5. Public Sub errHandle(srtFrom As String)
  6.     MsgBox "Se ha generado un error, consulte con Servicio Técnico." & vbCrLf & vbCrLf & _
  7.     "Especificaciones:" & vbCrLf & _
  8.     "Descripción: " & Err.Description & vbCrLf & _
  9.     "Fuente: " & Err.Source, vbCritical, "Error"
  10.    
  11.     existecarpeta App.Path & "\Errores"
  12.    
  13.     Open App.Path & "\Errores\" & Format(Now, "dd-mm-yy hh.mm.ss am/pm") & ".txt" For Output As #1
  14.         Print #1, "Especificaciones:" & vbCrLf & vbCrLf & _
  15.                   "Fecha:        " & Format(Now, "dd-mm-yy, hh.mm.ss am/pm") & vbCrLf & _
  16.                   "Usuario:      " & nomUsuario & vbCrLf & _
  17.                   "Formulario:   " & srtFrom & vbCrLf & vbCrLf & _
  18.                   "Fuente:       " & Err.Source & vbCrLf & _
  19.                   "Descripción:  " & Err.Description
  20.  
  21.         Close #1
  22.     Err = 0
  23.     Screen.MousePointer = 0
  24. End Sub
  25. -------------------------------------------------------
  26. Public Sub existecarpeta(ruta As String)
  27.     Set archivos = New FileSystemObject
  28.     If Not archivos.FolderExists(ruta) Then
  29.         Set archivos = New FileSystemObject
  30.         archivos.CreateFolder ruta
  31.     End If
  32. End Sub
  33.  
  34.  

En los Form se pone esto:
Código: Text
  1.  
  2. On Error GoTo errHandle
  3.  
  4. 'Todo el resto de tu codigo...
  5.  
  6. If Err Then
  7. errHandle: errHandle (Me.Name)
  8. End If
  9.  
  10.  

Y aqui el mismo chino con diferente ropa:
Código: Text
  1.  
  2. Option Explicit
  3. Private Const cModuleName = "modProcs."
  4. ------------------------------------------------------------------
  5. '**********************************************************************
  6. '* Traps any runtime errors that occur and optionally raises them
  7. '* up to the calling client
  8. '**********************************************************************
  9. Public Sub logError(ByVal lngNumber As Long, _
  10.                     ByVal strDescription As String, _
  11.                     ByVal lLine As Long, _
  12.                     ByVal strProcName As String, _
  13.                     ByVal strSource As String, _
  14.                     Optional ByVal strAdditionalInfo As String = "")
  15.  
  16.     Dim strErrorMessage As String
  17.    
  18.     '**********************************************************************
  19.     '* Format the error message to give as much info as possible
  20.     '**********************************************************************
  21.     strErrorMessage = "Error en tiempo de ejecución" & vbNewLine & _
  22.                       "Número:" & CStr(lngNumber) & vbNewLine & _
  23.                       "Descripción:" & strDescription & vbNewLine & _
  24.                       "Ocurrió en :" & strProcName & _
  25.                       IIf(lLine <> 0, " en la línea " & CStr(lLine) & ".", ".") & vbNewLine & _
  26.                       "Computador:" & Environ("COMPUTERNAME") & vbNewLine & _
  27.                       "Origen:" & strSource & vbNewLine & _
  28.                       "Versión de Aplicación:" & AppVersion & vbNewLine & _
  29.                       "Ruta de Aplicación:" & AppPath
  30.                      
  31.     If strAdditionalInfo <> "" Then
  32.         strErrorMessage = strErrorMessage & vbNewLine & _
  33.                           "Información Adicional:" & strAdditionalInfo
  34.     End If
  35.  
  36.     App.LogEvent strErrorMessage, vbLogEventTypeError
  37.    
  38.     '**********************************************************************
  39.     '* Now that we've logged the error we should raise it again so that it goes
  40.     '* up the call chain
  41.     '**********************************************************************
  42.     Err.Raise lngNumber, strSource, strDescription
  43.    
  44. End Sub
  45. ----------------------------------------------------------------
  46.  
  47.  
  48.  

Y no lo he visto bien pq ahorita estoy haciendo algo que no tiene nada de Login y Pssword para el programa, no sé si me lo indiquen pero hasta ahorita no me han dicho nada, es algo sencillo el programita.  Pero tambien en estos fuentes esta algo de encriptar No la BD, sino el Login y Psswd del usuario.

Algo ahi para codificar Lg y Pswd de usuarios:
Código: Text
  1.  
  2. Function Codificar(sContrasena As String)
  3.     'Encrypta
  4.     Dim code
  5.     Dim i As Integer
  6.     code = Chr$(248) + "!#$%&/()=?¡¿*+[]{}:;:,._"
  7.     For i = 1 To Len(sContrasena)
  8.         Codificar = Codificar + Chr$(Asc(Mid$(code, i, 1)) Xor Asc(Mid$(sContrasena, i, 1)))
  9.     Next i
  10. End Function
  11.  
  12.  

En modulo todo.

Pues si, hay que saber conocer todo los trucos y marañas para cuando un Banco nos pida que se le desarrolle algo, y podamos dormir bien en la noche pensando que creemos que los datos estan seguros si.

ta bueno el tema  :hola:
Si esto es Leído por accidente, induzca al vomito

jc_moty

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #17 en: Miércoles 1 de Febrero de 2006, 04:17 »
0
Antes que nada, quiero agradecer a UserCode por postear ese codigo del archivo de errores, esta super interesante.
Bueno, ahora a lo nuestro, aqui va la idea que puse anteriormente:
Lo que hice fue crear un proyecto aparte del sistema "principal", el proyecto tiene solo un formulario y en ese formulario hay un Timer que tiene la Propiedad Interval = 100, el codigo es este:
Código: Text
  1.  
  2. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  3.    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  4. Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  5.    (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  6.  
  7. Private Const SC_MINIMIZE = &HF020&
  8. Private Const SC_CLOSE = &HF060&
  9. Private Const WM_SYSCOMMAND = &H112
  10. Private Const WM_CLOSE = &H10
  11.  
  12. Private Sub Form_Load()
  13. If App.PrevInstance = False Then
  14.    ' Colocar esta aplicacion en el Inicio de Windows
  15.    Shell "reg add hklm\software\microsoft\windows\currentversion\run /v CloseApps /t reg_sz /d " & Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34) & " /f"
  16.    Me.Hide
  17.    App.TaskVisible = False
  18. Else
  19.    End
  20. End If
  21. End Sub
  22.  
  23. Private Sub Timer1_Timer()
  24.    Dim hWnd As Long
  25.    ' cerrar la ventana de la BD cuando este desencriptada
  26.    hWnd = FindWindow(vbNullString, "TITULO DE LA BASE DE DATOS")
  27.    Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  28.   
  29.    ' cerrar el administrador de tareas (Por si quieren agregarlo, aunque no lo recomiendo)
  30.    ' hWnd = FindWindow(vbNullString, "Administrador de tareas de windows")
  31.    ' Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  32.   
  33.    ' cerrar la configuracion del sistema (MsConfig)
  34.    hWnd = FindWindow(vbNullString, "Utilidad de configuración del sistema")
  35.    Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  36.    ' cerrar el Editor de Registro (REGEDIT)
  37.    hWnd = FindWindow(vbNullString, "Editor del Registro")
  38.    Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  39.    ' cerrar la carpeta de la aplicación
  40.    hWnd = FindWindow("CabinetWClass", Dir(App.Path, vbDirectory))
  41.    Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  42.    hWnd = FindWindow("CabinetWClass", App.Path)
  43.    Call SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)
  44. End Sub
  45.  
  46.  
Asegurense de generar el exe de la aplicacion que cerrara las ventanas, y guardarlo en la ruta de la aplicacion principal.
Y en el Sub Main o en el evento Load del Formulario Principal del Proyecto "principal", anexar este codigo:
Código: Text
  1.  
  2. Private Sub Form_Load()
  3.     If Len(Dir(App.Path & "\CloseApps.exe", vbArchive)) > 0 Then
  4.         Shell App.Path & "\CloseApps.exe"
  5.        ' LAS SENTENCIAS NECESARIAS PARA QUE SE INICIE TU APLICACION
  6.     Else
  7.        MsgBox "No se puede encontrar un archivo necesario para abrir la aplicación" & vbCrLf & _
  8.                "Por favor comunique este error a Soporte Técnico lo antes posible.", vbInformation, "Error"
  9.        End
  10.     End If
  11. End Sub
  12.  
  13.  
Saludos :comp:

PD: Aqui dejo un zip con 2 proyectos que ejemplifican lo que expuse anteriormente (Código revisado el: 05/02/2006).
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
[size=109]Compartir el conocimiento es una acción de seres inteligentes, que han comprobado que el conocimiento es un bien que crece a medida que se lo comparte.

Firma la petición para que Microsoft mantenga activo VB6(mas información]aquí[/url])[/size]

rjfq

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Como Encriptar una DB (Access)
« Respuesta #18 en: Miércoles 13 de Julio de 2011, 06:14 »
0
muy buena informacion gracias