Access - API

 
Vista:

API

Publicado por enric (2 intervenciones) el 25/10/2001 13:20:38
Tengo una aplicación multiusuario corriendo en una red y quisiera identificar el equipo que la ejecuta (nombre del equipo en la red).
Supongo que se podria hacer con alguna API de windows pero no sé cual ni como.
NOTA: El programa está ubicado en un servidor. Si un cliente ejecuta dicho programa, la función me ha de devolver el nombre del cliente y no el del servidor.

gracias y un saludo

enric
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
Imágen de perfil de Alejandro

API

Publicado por Alejandro (4142 intervenciones) el 19/04/2023 01:16:34
Puedes usar la función 'Environ' para obtener el nombre del equipo en la red. El siguiente código VBA te dará el nombre del equipo actual:

1
2
Dim computerName As String
computerName = Environ("COMPUTERNAME")

Si necesitas el nombre del equipo desde donde se está ejecutando la aplicación, puedes usar la función 'GetComputerNameA' de la API de Windows. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
Declare Function GetComputerNameA Lib "kernel32" _
    (ByVal lpBuffer As String, nSize As Long) As Long
 
Function GetLocalComputerName() As String
    Dim buffer As String * 255
    Dim bufferSize As Long
 
    bufferSize = Len(buffer)
    GetComputerNameA buffer, bufferSize
 
    GetLocalComputerName = Left$(buffer, bufferSize)
End Function

Con este código, la función 'GetLocalComputerName' devolverá el nombre del equipo local. Si necesitas obtener el nombre del equipo remoto desde el servidor, puedes usar la función 'GetComputerNameEx' de la API de Windows. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Declare Function GetComputerNameExA Lib "kernel32" _
    (ByVal NameType As Long, ByVal lpBuffer As String, _
    ByRef nSize As Long) As Long
 
Private Const ComputerNameDnsHostname As Long = 12
 
Function GetRemoteComputerName(ByVal ipAddress As String) As String
    Dim buffer As String * 255
    Dim bufferSize As Long
 
    bufferSize = Len(buffer)
    GetComputerNameExA ComputerNameDnsHostname, buffer, bufferSize
 
    GetRemoteComputerName = Left$(buffer, bufferSize)
End Function

En este código, la función 'GetRemoteComputerName' toma una dirección IP como argumento y devuelve el nombre del equipo remoto. Tendrás que modificar este código para adaptarlo a tu aplicación y a tus necesidades específicas.
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