elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda con VB6 el explorer.exe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con VB6 el explorer.exe  (Leído 1,766 veces)
ifm_5555

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con VB6 el explorer.exe
« en: 17 Junio 2008, 04:57 am »

Hola a todos.

Como bien sabrán, todos los archivos y carpetas ocultos de nuestro unidad se pueden mostrar u ocultar gracias a la ventana Opciones de carpeta...  en la pestaña Ver y a continuación bla bla bla y finalmente Aplicar cambios.

Bueno. Tengo en mi PC archivos y carpetas ocultos y, para evitar manualmente la ventana "Opciones de carpeta...", quiero que desde mi proyecto en Visual Basic 6.0 pueda ejecutar con dos CommandButton las siguientes funciones:

  Command1 > Mostrar todos los archivos y carpetas ocultos
  Command2 > No mostrar archivos ni carpetas ocultos


Al hacer clic en cualquiera de estos dos comandos obviamente quiero que se noten (o apliquen) los cambios en el Explorador de Windows: dependiendo la función, que se muestren u oculten todos los archivos y carpetas de mi unidad que tengan como atributo oculto.

Alguien me puede ayudar pasandome un código fuente o rutina de cómo hacer ésta función en VB6.0?

Gracias.


En línea

SKL (orignal)

Desconectado Desconectado

Mensajes: 259


UpLoadSourceCode


Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #1 en: 17 Junio 2008, 05:53 am »

hace lo siguiente....

hace un loop con los archivos del escritorio y dentro un if que valla verificando si el atributo es oculto o normal, entonces si es oculto lo conveierte a normal y sino alrevez...

se entiende??

sl2


« Última modificación: 17 Junio 2008, 05:56 am por skullsp » En línea

SERBice


Desconectado Desconectado

Mensajes: 934



Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #2 en: 17 Junio 2008, 10:48 am »

hace lo siguiente....

hace un loop con los archivos del escritorio y dentro un if que vaya verificando si el atributo es oculto o normal, entonces si es oculto lo conveierte a normal y sino alrevez...

se entiende??

sl2

eso no seria bueno, si tiene 10 ocultos y 30 visibles, los pone visibles a todos, y luego... chau, seran 40 ocultos, no 10 y 30.....


investiga sobre las apis del shell de windows y el panel de control
En línea

Lambda


Desconectado Desconectado

Mensajes: 371



Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #3 en: 17 Junio 2008, 10:58 am »

seguramente sea una clave en el registro lo que determina eso, tendras que bucear en el o usar google XD
En línea

SERBice


Desconectado Desconectado

Mensajes: 934



Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #4 en: 17 Junio 2008, 11:15 am »

si, seguramente lo sea, pero hayq eu "avisarle" a windows que esa clave ha cambiado, por eso es mejor usar apis que modifiquen eso puntualmente y no el registro.
En línea

Xerok1!

Desconectado Desconectado

Mensajes: 228



Ver Perfil
Re: Ayuda con VB6 el explorer.exe
« Respuesta #5 en: 17 Junio 2008, 15:21 pm »

Pues mira un code de la api guide un poco adaptado, estoy seguro de que se puede simplificar muchísimo más,pero bueno tampoco tengo mucho tiempo asique todo tuyo ;) ;)
Código
  1. Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  2. Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  3. Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
  4. Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
  5.  
  6. Const MAX_PATH = 260
  7. Const MAXDWORD = &HFFFF
  8. Const INVALID_HANDLE_VALUE = -1
  9. Const FILE_ATTRIBUTE_ARCHIVE = &H20
  10. Const FILE_ATTRIBUTE_DIRECTORY = &H10
  11. Const FILE_ATTRIBUTE_HIDDEN = &H2
  12. Const FILE_ATTRIBUTE_NORMAL = &H80
  13. Const FILE_ATTRIBUTE_READONLY = &H1
  14. Const FILE_ATTRIBUTE_SYSTEM = &H4
  15. Const FILE_ATTRIBUTE_TEMPORARY = &H100
  16.  
  17. Private Type FILETIME
  18.    dwLowDateTime As Long
  19.    dwHighDateTime As Long
  20. End Type
  21.  
  22. Private Type WIN32_FIND_DATA
  23.    dwFileAttributes As Long
  24.    ftCreationTime As FILETIME
  25.    ftLastAccessTime As FILETIME
  26.    ftLastWriteTime As FILETIME
  27.    nFileSizeHigh As Long
  28.    nFileSizeLow As Long
  29.    dwReserved0 As Long
  30.    dwReserved1 As Long
  31.    cFileName As String * MAX_PATH
  32.    cAlternate As String * 14
  33. End Type
  34. Function StripNulls(OriginalStr As String) As String
  35.    If (InStr(OriginalStr, Chr(0)) > 0) Then
  36.        OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
  37.    End If
  38.    StripNulls = OriginalStr
  39. End Function
  40.  
  41. Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)
  42.    Dim FileName As String
  43.    Dim DirName As String
  44.    Dim dirNames() As String
  45.    Dim nDir As Integer
  46.    Dim i As Integer
  47.    Dim hSearch As Long
  48.    Dim WFD As WIN32_FIND_DATA
  49.    Dim Cont As Integer
  50.    If Right(path, 1) <> "\" Then path = path & "\"
  51.  
  52.    nDir = 0
  53.    ReDim dirNames(nDir)
  54.    Cont = True
  55.    hSearch = FindFirstFile(path & "*", WFD)
  56.    If hSearch <> INVALID_HANDLE_VALUE Then
  57.        Do While Cont
  58.        DirName = StripNulls(WFD.cFileName)
  59.  
  60.        If (DirName <> ".") And (DirName <> "..") Then
  61.  
  62.            If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then
  63.                dirNames(nDir) = DirName
  64.                DirCount = DirCount + 1
  65.                nDir = nDir + 1
  66.                ReDim Preserve dirNames(nDir)
  67.            End If
  68.        End If
  69.        Cont = FindNextFile(hSearch, WFD)
  70.        Loop
  71.        Cont = FindClose(hSearch)
  72.    End If
  73.  
  74.    hSearch = FindFirstFile(path & SearchStr, WFD)
  75.    Cont = True
  76.    If hSearch <> INVALID_HANDLE_VALUE Then
  77.        While Cont
  78.            FileName = StripNulls(WFD.cFileName)
  79.            If (FileName <> ".") And (FileName <> "..") Then
  80.                FindFilesAPI = FindFilesAPI + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
  81.                FileCount = FileCount + 1
  82.                SetAttr path & FileName,vbNormal  'Cambia el atributo del archivo, para ocultar (vbhide)para mostrar (vbnormal)
  83.  
  84.            End If
  85.            Cont = FindNextFile(hSearch, WFD)
  86.        Wend
  87.        Cont = FindClose(hSearch)
  88.    End If
  89.  
  90.    If nDir > 0 Then
  91.  
  92.        For i = 0 To nDir - 1
  93.            FindFilesAPI = FindFilesAPI + FindFilesAPI(path & dirNames(i) & "\", SearchStr, FileCount, DirCount)
  94.        Next i
  95.    End If
  96. End Function
  97. Sub Command1_Click()
  98.    Dim SearchPath As String, FindStr As String
  99.    Dim FileSize As Long
  100.    Dim NumFiles As Integer, NumDirs As Integer
  101.    SearchPath = "c:\lol"
  102.    FindStr = "*.*"
  103.    FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
  104. End Sub
  105.  
  106.  


Un saludo :)
En línea

[Firma]Esperando haber si acaba el concurso de firmas y la pongo[/Firma]
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #6 en: 17 Junio 2008, 18:05 pm »

buscar en el foro,yo postie uno hace rato aca:

http://foro.elhacker.net/programacion_vb/duda_carpetas_ocultas_y_dirlistbox-t213634.0.html;msg1013904#msg1013904

saludos.





En línea

krackwar


Desconectado Desconectado

Mensajes: 900


Ver Perfil
Re: Ayuda con VB6 el explorer.exe
« Respuesta #7 en: 17 Junio 2008, 21:26 pm »

Resumo su duda para los que no entienden :xD. Lo que el quiere es que si el aprieta un boton en un programa hecho por el , los archivos que estaban ocultos se vean en el Explorer.exe no en su aplicación , y si aprieta otro botno en su aplicación se vuelvan a ocultar en el Explorer.exe .
En línea

Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con VB6 el explorer.exe
« Respuesta #8 en: 18 Junio 2008, 00:06 am »

si nada que ver jaja  :P :P,bueno mira no se si se puede hacer de otra forma,pero es solo manipular el registro de windows...y cambiar valores..tenes que ir a la ruta del registro:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced \ Folder \ Hidden.

y despues cambiar el valor de la clave Type,dejarla vacia.... y para mostrarlos tenes que poner como valor "group" sin comillas...

eso es para ahcer otra cosa,lo probe y oculta las opciones de mostrar o no mostrar archivos ocultos..la que cambia las opciones que vos queres esta en:

HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

busca en internet hay mucha info sobre esto...


saludos.
« Última modificación: 18 Junio 2008, 00:21 am por seba123neo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines