Excel - Se puede leer ID del PC desde VBA

 
Vista:

Se puede leer ID del PC desde VBA

Publicado por Richard (43 intervenciones) el 01/12/2007 13:27:26
Será posible leer desde VBA el numero de serie o algo que identifique el computador desde VBA???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Se puede leer ID del PC desde VBA

Publicado por JuanC (792 intervenciones) el 12/12/2007 14:13:20
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)

If x <> 0 Then sID = Hex(DrvSerialNo)

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Se puede leer ID del PC desde VBA

Publicado por Richard (43 intervenciones) el 13/12/2007 00:26:49
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se puede leer ID del PC desde VBA

Publicado por Marvin Osorio (368 intervenciones) el 13/12/2007 16:39:21
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...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se puede leer ID del PC desde VBA

Publicado por Richard (43 intervenciones) el 13/12/2007 17:26:14
Muchas gracias Marvin. Funcionó!!!
Cual crees que es el problema en lo que propone Juan Carlos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Se puede leer ID del PC desde VBA

Publicado por Jorge A. (3 intervenciones) el 10/06/2020 03:42:11
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar