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
Ir a la versión completa