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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Cómo ir a un directorio (universalmente)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cómo ir a un directorio (universalmente)  (Leído 4,449 veces)
oskoa

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Cómo ir a un directorio (universalmente)
« en: 29 Diciembre 2010, 10:38 am »

ME gustaria saber en VB6 como hacer para ir a un directorio de una manera FIja y segura.

Yo tengo un codigo que me permite detectar "C:\Windows" sea la letra que sea, eso asegura poder escribir en el directorio windows y subcarpetas de forma segura siempre.

Pero yo necesito escribir algo en varias subcarpetas en Doucments and settnigs, adminsitrador. (en XP) y Users \Admin en seven.

Como no tengo ninguna seguridad de que si "Adminitrador" es adminsitrador, y si admin es admin, me gustaria saber un codigo para que me lo haga seguro.

Y otra cosa, si tengo varias sesiones, como sé a cual se dirige el codigo?

El codigo que tengo apra decidir sobre c:\windows sobre todo, es el siguiente:

Código:

Option Explicit

Private Declare Function GetWindowsDirectory _
    Lib "kernel32" Alias "GetWindowsDirectoryA" ( _
        ByVal lpBuffer As String, _
        ByVal nSize As Long) _
    As Long


Private Function GetWinDir() As String
    Dim Temp As String * 256
    Dim x As Integer
    x = GetWindowsDirectory(Temp, Len(Temp)) ' Make API Call (Temp will hold return value)
    GetWinDir = Left$(Temp, x)               ' Trim Buffer and return string
End Function


Y luego en vez de poner EJ:

Kill C:\windows\system32\Hola.dll Pongo:
kill GetWinDir & "\system32\hola.dll

Si pudiera hacer esto con Docuemntds and setiings y adminstrodor, y USers y admin, seria una gran ayuda,

Gracuas!


En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Cómo ir a un directorio (universalmente)
« Respuesta #1 en: 29 Diciembre 2010, 11:13 am »

Mirate este módulo que hizo mi amigo raul :
http://goo.gl/0G9QL

DoEvents! :P


En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Cómo ir a un directorio (universalmente)
« Respuesta #2 en: 29 Diciembre 2010, 15:04 pm »

ExpandEnvironmentStrings():
Código:
http://msdn.microsoft.com/en-us/library/ms724265(v=vs.85).aspx

Ejemplo:
Código:
"%USERPROFILE%\MiCarpeta" -> "C:\Users\MiUsuario\MiCarpeta"
Y asi con cualquier variable de entorno:
Código:
http://es.wikipedia.org/wiki/Variable_de_entorno#Valores_por_defecto_de_las_variables_de_entorno
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Cómo ir a un directorio (universalmente)
« Respuesta #3 en: 29 Diciembre 2010, 15:41 pm »

En las variables de entorno no esta %LOCALAPPDATA% en winXP asi que mi EnvironEx le gana a ExpandEnvironmentStrings :xD

En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Cómo ir a un directorio (universalmente)
« Respuesta #4 en: 29 Diciembre 2010, 16:02 pm »

Las ventajas de ExpandEnvironmentStrings() sobre SHGetFolderPath() son:
  • No necesitas una lista de constantes
  • No es necesario concatenar cadenas
Las desventajas son:
  • Utilizas mas bytes en la cadena de la ruta
  • Ciertas variables de entorno no se pueden obtener usando este metodo, como por ejemplo la ruta de INICIO
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Cómo ir a un directorio (universalmente)
« Respuesta #5 en: 29 Diciembre 2010, 17:33 pm »

Y si lo haces con la funcion Environ? Mas simple xD
En línea

oskoa

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: Cómo ir a un directorio (universalmente)
« Respuesta #6 en: 29 Diciembre 2010, 20:31 pm »

AAAAAAAAAAAA me habia olvidado de environ, Pasa q hace 6 meses q no toco vb y algunas cosasme aprecen chino XD. ahora leo todo las opciones que me dijeron y en un rato contesto.

mucas gracias!
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Cómo ir a un directorio (universalmente)
« Respuesta #7 en: 29 Diciembre 2010, 21:21 pm »

Y si lo haces con la funcion Environ? Mas simple xD
Hay que concatenar :-*
Principalmente la funcion de ExpandEnvironmentStrings() es expandir cadenas constantes... por ejemplo; Un packer, en el que puedes elegir donde se desempaqueta el fichero... puedes utilizar las variables de entorno y luego expandirlas sin mas...
En línea

oskoa

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: Cómo ir a un directorio (universalmente)
« Respuesta #8 en: 30 Diciembre 2010, 00:58 am »

Gracias a todos. Utilicé esta linea de codigo, que funcionó en XP y Seven. (aunque se llaman Adminsitrador y admin los usuarios, pero calculo que funcionará si el usuario se llama "CARLOS").

El problema es que si tengo más de una cuenta de usuario, no funciona. Alguna idea?

Código:
Public Function GetApp() As String
    GetApp = CreateObject("Shell.Application").NameSpace(28).Self.Path
End Function


Private Sub Form_Load()
 MkDir GetApp & "\Microsoft\Hola"
End Sub



Eso crea una carpeta "hola" en 

C:\Documents and Settings\Administrador\Configuración local\Datos de programa\Microsoft\

Pero si tengo mas de una cuenta de usuario, no anda.
ideas?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como borro un directorio con todo su contenido
Programación Visual Basic
Mr pom0 5 2,632 Último mensaje 5 Octubre 2007, 18:34 pm
por Mr pom0
Cómo diferenciar un directorio de un archivo
Scripting
<ИΘZIЭ(ŦB> 9 9,135 Último mensaje 23 Junio 2010, 22:02 pm
por <ИΘZIЭ(ŦB>
Como abrir un directorio
Programación C/C++
comemelguevo 2 2,051 Último mensaje 20 Enero 2016, 20:46 pm
por comemelguevo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines