Programación General > Visual Basic 6.0 e inferiores

 Directorio Windows

(1/1)

acek:
:hitcomp:  que tal compañeros!!!! como se encuentran, tengo una duda que me ha matado la cabeza y por mas que he buscado no la logro resolver, yo quiero acceder a informacion del sistema, mas puntualmente a esta :

Nombre del usuarion actualmente logiado  :rolleyes:
y al directorio C:/Windows o C:/Winnt segun sea el caso, ya q mi aplicacion sera ejecutada o en windows 2000 o xp.....
y tambien al directorio Mis documento directamente...... si ?  :P :P me colaboran por fa!!!!

acek:
<_<  Bueno a falta de 1 respuesta me tope como 3.... jejeje aqui se las comparto me parece algo muy util mas q todo cuando se manejan archivos de configuracion .....

Por ejemplo este, en este caso traemos mis documentos

--- Código: Text --- Dim WScript As Object Set WScript = CreateObject("WScript.Shell") ‘obtenemos la ruta del destino de Mis Documentos MsgBox WScript.SpecialFolders("MyDocuments") Set WScript = Nothing   en donde cada parametro es :
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates

Me encontre este otro q tambn es bien interesante, lo use para el directorio de windows

--- Código: Text --- Private Sub Form_Load()    Dim FSO    Set FSO = CreateObject("Scripting.FileSystemObject")        'Esta devuelve el directorio de Windows    MsgBox FSO.GetSpecialFolder(0)     'Esta devuelve el System32    MsgBox FSO.GetSpecialFolder(1)     'Esta devuelve el TEMP    MsgBox FSO.GetSpecialFolder(2)End Sub  Y este extralargo usando el api de windows  :clown:

--- Código: Text ---Option Explicit Public Declare Function GetWindowsDirectory Lib "kernel32" Alias"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long)As LongPublic Declare Function GetSystemDirectory Lib "kernel32" Alias"GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long)As LongPublic Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA"(ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPublic Enum SYS_Path    WINDOWS_DIR = 0    SYSTEM_DIR = 1    TEMP_DIR = 2End EnumPublic Function SYS_GetPath(Path As SYS_Path) As StringOn Local Error Resume NextDim Temp As String * 256Dim X As Integer   Select Case Path        Case 0 'Directorio Windows:            X = GetWindowsDirectory(Temp, Len(Temp))        Case 1 'Directorio System:            X = GetSystemDirectory(Temp, Len(Temp))        Case 2 'Directorio Temp (Directorio Temporal):            X = GetTempPath(Len(Temp), Temp)    End Select    SYS_GetPath = VBA.Left$(Temp, X)    If Path = TEMP_DIR Then SYS_GetPath = VBA.Left$(SYS_GetPath, Len(SYS_GetPath) - 1)End Function  
Y pues segun lo q encontre, la mejor es la API ya q no vale la pena cargarse todo un script para eso :P....

Espero le sirva a alguien y no solo a mi  :good:

Navegación

[0] Índice de Mensajes

Ir a la versión completa