Private Declare Function apiGetVolumeInformation Lib "kernel32" Alias _
"GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal _
lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal _
nFileSystemNameSize As Long) As Long
Dim DrvSerialNo&
Dim DrvLabel As String * 256
Dim FileSys As String * 256
Dim i&, j&, x&, sID$
x = apiGetVolumeInformation("C:", DrvLabel, 256, DrvSerialNo, i, j, FileSys, 256)
Gracias Juan carlos.
Al depurarlo sale: Error de compilación: El procedimiento externo no es válido, y señala "C:" en la instrucción
x = apiGetVolumeInformation("C:", DrvLabel, 256, DrvSerialNo, i, j, FileSys, 256)
Qué será lo que paso?
Agradezco de antemano tu valiosa ayuda
Te envio un código para leer el ID de la máquina, espero te sirva. en la hoja en modo de edición inserta un nuevo modulo y copias el siguiente código.
'------------------------------------------------------------------------------------------------------
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function ObtenerNombreUsuario() As String
Dim rtn As Long
Dim sBuffer As String
Dim lSize As Long
sBuffer = String$(260, Chr$(0))
lSize = Len(sBuffer) - 1
rtn = GetUserName(sBuffer, lSize)
If rtn Then
sBuffer = Left$(sBuffer, lSize)
If InStr(sBuffer, Chr$(0)) Then
sBuffer = Left$(sBuffer, InStr(sBuffer, Chr$(0)) - 1)
End If
ObtenerNombreUsuario = sBuffer
Else
'error!
ObtenerNombreUsuario = ""
End If
End Function
Luego en cualquier celda ingresar la formula =ObtenerNombreUsuario() y listo...
Tuve dificultades al inicio tras probar este código, pero usando la palabra PtrSafe para visual v7.1 después de la expresión "Declare" me funcionó correctamente, gracias por el aporte.