canal visual basic .net

Recursos Visual Basic.NET, VB.NET, Manuales de programación, Tutoriales, Foros de programación, Comunidad de programadores

Usuarios activos:  51

Foros de programación, recursos, tutoriales, sistemas operativos...

Bienvenido a la zona de foros. Participa en alguno de nuestros foros: Foros de visual basic, foros de visual basic.net foros de Crystal reports, programas gratis, foros de C++ - C# , foros de Java, foros de PHP, foros de ASP.net. Seguro que hay un foro que te servirá de gran utilidad y si no lo encuentras avísanos y crearemos uno nuevo.
Resultados 1 al 9 de 9
  1. #1
    Avatar de Anibal
    Anibal está desconectado Senior Member Guru
    Fecha de ingreso
    19 dic, 05
    Ubicación
    Spain
    Mensajes
    1,269

    Predeterminado



    Esto lo que hace es proteger un directorio o carpeta. Si abres el Explorador el directorio aparece, pero al hacer clic en él no muestra los archivos que contiene. O sea, debería titularlo "ocultar archivos de una carpeta".


    Código:
    Option Explicit
    
    
    Private Type BrowseInfo
     hWndOwner As Long
     pIDLRoot As Long
     pszDisplayName As Long
     lpszTitle As Long
     ulFlags As Long
     lpfnCallback As Long
     lParam As Long
     iImage As Long
    End Type
    
    
    Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    
    
    Dim sPath As String
    Dim FSO As New FileSystemObject
    Dim sDir As Folder
    ' Proyecto -> Referencias = Microsoft Scripting Runtime
    
    
    Private Sub Form_Load()
     cmdSeleccionar.Caption = "Selecciona carpeta"
     cmdProteger.Caption = "Proteger carpeta"
     cmdDesproteger.Caption = "Desproteger carpeta"
    End Sub
    
    
    Private Sub cmdSeleccionar_Click()
     Dim lRet As Long
     Dim BrI As BrowseInfo
    
    
     lRet = SHBrowseForFolder(BrI)
     If lRet Then
     sPath = String$(255, 0)
     SHGetPathFromIDList lRet, sPath
     If InStr(sPath, vbNullChar) <> 0 Then
       sPath = Left(sPath, InStr(sPath, vbNullChar) - 1)
     End If
     End If
     Text1 = sPath
     If InStr(1, sPath, "{", vbTextCompare) Then
     ' la carpeta se había protegido
     cmdDesproteger.Enabled = True
     cmdProteger.Enabled = False
     Else
     cmdProteger.Enabled = True
     cmdDesproteger.Enabled = False
     End If
     Text1.SetFocus
    End Sub
    
    
    Private Sub cmdProteger_Click()
     Dim sExt As String
     sExt = ".{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}" ' aparece la carpeta, pero sin archivos
     
     On Error GoTo hErr
     FSO.MoveFolder sPath, sPath & ".{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}"
     Set sDir = FSO.GetFolder(sPath & ".{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}")
     sDir.Attributes = Hidden
     
     MsgBox "Carpeta protegida.", vbApplicationModal + vbInformation
     Exit Sub
    hErr:
     ' Ten en cuenta que algunas carpetas no se pueden proteger
     ' p.e. Windows, Mis Documentos o el Directorio actual
     MsgBox "La carpeta " & sPath & " No se puede proteger.", vbApplicationModal + vbInformation
     cmdProteger.Enabled = False
     cmdSeleccionar.SetFocus
    End Sub
    
    
    Private Sub cmdDesproteger_Click()
     FSO.MoveFolder sPath, Left(sPath, InStr(sPath, ".{") - 1)
     Set sDir = FSO.GetFolder(Left(sPath, InStr(sPath, ".{") - 1))
     sDir.Attributes = Normal
     MsgBox "Eliminada la protección.", vbApplicationModal + vbInformation
     Text1 = ""
    End Sub

    Como siempre, es susceptible de mejoras, si a alguién se le ocurre alguna, sería bueno que lo indicara.


    Saludos



  2. #2
    Guests está desconectado Invitado Guru
    Fecha de ingreso
    01 oct, 03
    Mensajes
    4,382

    Predeterminado



    Existe una mejor manera de proteger una carpeta.


    en el DOS Rename carpeta carpeta + alt 254





    bye

  3. #3
    Avatar de Anibal
    Anibal está desconectado Senior Member Guru
    Fecha de ingreso
    19 dic, 05
    Ubicación
    Spain
    Mensajes
    1,269

    Predeterminado



    Bueno, en realidad nadie dijo que fuera la mejor manera, sino una forma de hacerlo desde Visual Basic.


    De todas formas lo que propones está obsoleto a partir de la versión 98 de Windows (es decir no funciona en W2000,...ni XP).


    Saludos



  4. #4
    Vanchi está desconectado Moderador Veteran@
    Fecha de ingreso
    09 dic, 05
    Mensajes
    740

    Predeterminado

    La forma que dice Dragonice es la que utilizaba en el secundario (DOS 6.x, allá por el 94/5) para evitar el acceso de otras personas a mis carpetas (DOS nunca fue multiusuario)

    De todas formas, (aparte de la aclaración de que es obsoleto como dijo Anibal) eso NO es para proteger carpetas, sino simplementa para dificultar su acceso (ya que el caracter 255 no tiene representación)... por supuesto esta triquiñuela era completamente inútil si otro más sabía de esto.

    Otra forma de eliminar esa "trampita" era utilizar el "ncd" (Norton Change Directory) con el cual no había problemas...

    Saludos

    PD: Perdón, pero me puse nostálgico.

    PD2: ¡Qué lindos eran aqullos días donde modificabamos el command.com para que no leyera el autoexec.bat apenas iniciado, sino cualquier otro archivo donde habíamos previamente dejado un mensaje para el próximo usuario!!!

    Iván (Vanchi) La Malfa
    OpenOffice.org
    .Free as in Freedom.

  5. #5
    !nSaN0s_ está desconectado Junior Member Iniciad@
    Fecha de ingreso
    05 oct, 06
    Mensajes
    1

    Predeterminado

    Ese codigo en VB se podra utilizar tambien para proteger un archivo especifico?



  6. #6
    Néstor Acevedo está desconectado Senior Member Expert@
    Fecha de ingreso
    15 dic, 05
    Ubicación
    Bogotá, D.C
    Mensajes
    425

    Predeterminado

    en XP eso que escribió Dragonice no funciona.

  7. #7
    Avatar de LoCKopE
    LoCKopE está desconectado Junior Member Iniciad@
    Fecha de ingreso
    03 nov, 06
    Ubicación
    Mexico
    Mensajes
    1

    Predeterminado

    Humm eso que dice Dragonicese utilizaba mucho en win95, 98, me y pues como era un caracter que no reconocia windows porque estaba en DOS pues por eso no se podia accesar a la carpeta ...

    Aun asi se podia ver .. Yo lo que hacia era dar un Dir y nomas copiaba y pegaba jajaja y ya cambiaba con rename era relativamente fácil ..

    Anibal gracias por el código es bueno!!!

    Suerte a todos amigos!
    Leit Motiv

  8. #8
    ISMA está desconectado Junior Member Iniciad@
    Fecha de ingreso
    28 abr, 07
    Mensajes
    3

    Predeterminado

    Ese código fuente Visual Basic anterior de Anibalnos hace muchas pelotas... Yo lo se de una maneramás sencilla fácil de entendery sin usar ninguna referencia dllen el proyecto. Simplemente quedaría así:

    ====================
    'Agrega dos CommandButton con el nombre predeterminado _
    (default)en el nuevo proyecto e inserta el siguiente _
    código en el formulario:
    Option Explicit

    Dim Carpeta As String, Extension As String, CarpExt As String

    Private Sub Form_Load()
    Carpeta = "C:\Mi carpeta" '-->Cambiar por tu carpeta.
    Extension = ".{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}"
    Command1.Caption = "Proteger carpeta"
    Command2.Caption = "Desproteger carpeta"
    End Sub

    'Para proteger carpeta:
    Private Sub Command1_Click()
    On Error GoTo E_53 '-->Error 53 es: No se encuentra el archivo.
    Name Carpeta As Carpeta & Extension
    MsgBox "La carpeta ''" & Carpeta & "'' ha sido protegida.", 64
    Exit Sub
    E_53:
    If Err.Number = 53 Then MsgBox "La carpeta no se puede proteger", 16
    End Sub

    'Para desproteger carpeta:
    Private Sub Command2_Click()
    CarpExt = Carpeta & Extension
    On Error GoTo E_53
    Name CarpExt As Mid(CarpExt, 1, Len(CarpExt) - 39) '-->Renombra menos los 39 caracteres de extension.
    MsgBox "La carpteta ''" & Carpeta & "'' ha sido desprotegida", 64
    Exit Sub
    E_53:
    If Err.Number = 53 Then MsgBox "No se puede desproteger esta carpeta.", 16
    End Sub
    ====================

    Como ven es fácil. Se puede hacer manualmente pero no se puede restrablecer la carpeta mas que tan solo con el código fuente.
    Haaa si quieren cambiar el icono de la carpeta FolderMessenger que muestra el código pre-anterior de Anibalque tanto nos hace pelotas, cambien la extensión: ".{FC9FB64A-1EB2-4CCF-AF5E-1A497A9B5C2D}" por: ".{FEF10DED-355E-4e06-9381-9B24D7F7CC88}". Esta clave nos servirá para bloquear la carpeta sin que por nada se pueda abrir. Esa clave que les doy se llama CompositeFolder. La extraí con un programa hackeadordel Shell32.dll de Windows, ahí se encuentran todas las claves de extensión para carpetasque utiliza Windows, desde la llamada Shellque alude a la Papelera de reciclaje titulada RecycleBin hasta la mismadePanel de control llamda ControlPanel. O sea, que a tu capeta la puedes proteger sobreponiendole cualquiera de esta claves y se mostrará por un icono según dicha clave. Por ejemplo, si es el del ControlPanel ({21EC2020-3AEA-1069-A2DD-08002B30309D}) tu carpeta se convertirá en el icono del Panel de control. Si intentasabrir tu carpeta ya convertida no te mostrará tus archivos, sino los mismo que aparecen en el Panel de control original, aunque tus archivos siguen guardados en esa carpeta disfrasa de Panel de control.

    Si tienendudassobre cómo bloquear, ocultar carpetas o ficheros sin necesidad de ir al las herramientas de Windows "Mostra archivos ocultos" tengo mi email ifm_555@hotmail.com... Bye.Edited by: ISMA

  9. #9
    Aguiles está desconectado Junior Member Iniciad@
    Fecha de ingreso
    16 sep, 10
    Mensajes
    1

    Red face No me proteje la carpeta

    Hola!!
    Fijate que probe tu rutina pero no me protegió la carpeta solo le añadio la extensión; me gustaria saber si tienes una versión mejorada; estoy utilizando VB6-SP6 con XP-Pro-SP3 y necesito proteger una carpeta para que los usuarios no cambien los archivos (o borren) de una aplicación que esta en ella; ya la oculte pero creo que tambien saben mapearla. Mi necesidad es que solo se pueda abrir por medio del programa que se utiliza para leer y escribir los archivos (son txt) pero no se pueda ver(o acceder) por medio del explorer de windows u otra forma.

    Nota: Tambien aceptaría ideas alterna que no requieran programas externos, bueno solo GPL(GNU).

    Saludos y GRACIAS

Temas similares

  1. reducir directorios
    Por scorpionhack en el foro Visual Basic 6.0
    Respuestas: 2
    Último mensaje: 05/05/2009, 04:20
  2. Proteger mi aplicacion
    Por Protxo en el foro Visual Basic 6.0
    Respuestas: 4
    Último mensaje: 01/11/2008, 14:39
  3. Condiciones con Directorios.
    Por JorgeMC en el foro Visual Basic .NET
    Respuestas: 1
    Último mensaje: 25/08/2008, 13:11
  4. listar directorios
    Por felipEx en el foro Visual Basic 6.0
    Respuestas: 5
    Último mensaje: 04/02/2007, 12:02
  5. Proteger PDF
    Por Guests en el foro Visual Basic 6.0
    Respuestas: 0
    Último mensaje: 05/07/2006, 07:51

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Visual Studio .VisualBasic.net .ADO.NET .ASP.NET .Framework .Crystal report
[Visual Basic .NET · Información legal · Condiciones de uso · Publicidad · Contacto · RSS novedades Foro · Inicio]
Un sitio web de Internelia (Ontecnia) © Copyright 2013 canalvisualbasic.net. Todos los derechos reservados