Nombre del ordenador

¿Sabes cómo puedo meter el nombre de mi pc a un variable con visual? He hecho un programa que borra unos archivos de todos los ordenadores de la red, y si alguno da error tiene que mandar un mail con el nombre del ordenador a una dirección, pero no se cómo capturar automáticamente el nombre del ordenador.
Espero tu respuesta
Muchas gracias

4 Respuestas

Respuesta
1
Si los archivos que borras están en otras maquinas, solo tienes que utilizar su ruta de red para saber el nombre de la maquina, si borras un archivo que se encuentra por ejemplo en \\maquina1\c\archivos vos ya sabes que la maquina se llama "maquina1", si utilizas recursos compartios para borrar (asignastes unidad de red a esa maquina), ya perdés la ruta de red, pero si vos sos el que asigno los recursos, tendrías que almacenar en archivo, base de datos o texto, los nombres de las maquinas y que recurso comparten.
El problema es que por API, vos podes saber el nombre de la maquina en la cual estas ejecutando tu aplicación, no podes saber el nombre de una maquina de la red, eso lo tienes que tener previsto vos, lo más aconsejable es un base de datos, y tu programa al empezar a borrar esos archivos en todas las máquinas, tendrías un control de las letras de unidades y a que maquina pertenece.
No es difícil, pero si se te complica solo dime en que parte y veo como solucionártelo.
Te mando la declaración de API para tener el nombre de tu maquina:
Declara esto en el procedimiento general:
Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
ahora en el Load del formulario o donde quieras pone:
Dim dwLen As Long
Dim strString As String
dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X")
GetComputerName strString, dwLen
strString = Left(strString, dwLen)
TuNombreCompu = String
Cualquier duda estoy a tu disposición.
Muchas gracias por responder tan rápido, pero creo que con Environ(4) me sirve, porque el programa lo ejecuto desde cada máquina, he estado buscando y devuelve el nombre del PC. Muchas gracias de todas maneras
Respuesta
1
Este método podría variar en función del Sistema Operativo que tenga cada usuario, pero lo más fácil sería hacer uso del Registro (regedit), el nombre de la máquina se encuentra en HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName, las funciones para trabajar con el registro las puedes ver en la web del Guille http://guille.costasol.net/indice.asp
Gracias, pero creo que voy a utilizar una función que he visto por internet que es Environ() con Environ(4) me devuelve el nombre del pc. Muchas gracias de todas maneras.
Respuesta
1
No tengo las aplicaciones que lo hacen pero te refiero a las siguientes páginas:
http://www.jrubi.com
http://www.planet-source-code.com
http://www.lawebdelprogramador.com
Respuesta
1
a)
Aquí está la solución a la pregunta... Espero sea lo que necesites Okey!
Bien Éxitos! Si necesitas algo no dudes en preguntar!
Private Declare Function GetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Sub Form_Load()
Dim buffer As String * 512, length As Long
length = Len(buffer)
If GetComputerName(buffer, length) Then
' Returns nonzero if successful, and modifies the length argument
MsgBox "Computer Name = " & Left$(buffer, length)
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas