• Sábado 21 de Diciembre de 2024, 10:01

Autor Tema:  Obtener Nombre De La Pcy Usuario  (Leído 8052 veces)

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Obtener Nombre De La Pcy Usuario
« en: Martes 19 de Septiembre de 2006, 22:56 »
0
Saludos.
Quisiera saber si es posible capturar el nombre de la PC y del usuario, utilicé esto pero no me dio resultado, porque al final, en sle_PC y sle_USER sólo me mostró unas letras medio raras, en chino me parece, lo cual si me parece inexplicable(ojalá que alguien me diga porqué) Estoy usando el Power Builder 10, y mi Sistema Operativo es el Windows 2003 Server, este es el código que usé:

uint li_Longitud_nombre_maquina, li_longitud_usuario_windows
string ls_Datos_Guardar
int li_Fichero
string maquinanombre, usuarionombre
maquinanombre = SPACE(250)
usuarionombre = SPACE(250)
li_Longitud_nombre_maquina = 250
li_longitud_usuario_windows = 250

GetUserNameA(usuarionombre,li_Longitud_Usuario_Windows)
GetComputerNameA(maquinanombre ,li_Longitud_Nombre_Maquina)
sle_PC.text=maquinanombre
sle_USER.text=usuarionombre


Gracias de antemano  :comp:

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Obtener Nombre De La Pcy Usuario
« Respuesta #1 en: Martes 19 de Septiembre de 2006, 23:45 »
0
Saludos...

Estas definiendo la función externa?
Define la variable que da longitud como long (tu la estas definiendo entero corto sin signo)...
Aquí tienes ejemplos de las dos cosas...

GetComputerNameA( )
This function returns the computer's name into a string by reference. Be sure to allocate enough space for the string or you'll get a GPF when you exit PowerBuilder. There is no PowerBuilder equivalent.

Global External Function:
FUNCTION boolean GetComputerNameA(ref string cname,ref long nbuf) LIBRARY "Kernel32.dll"

Script:
string ls_compname
long ll_buf
ll_buf = 25
ls_compname = space(ll_buf)
GetComputerNameA(ls_compname, ll_buf)
MessageBox("Computer name is:", ls_compname)

GetUserNameA( )
This function returns the current users logon name. Be sure to allocate enough space for the string or you'll get a GPF when you exit PowerBuilder. There is no PowerBuilder equivalent.

Global External Function:
FUNCTION boolean GetUserNameA(ref string uname, ref ulong slength) LIBRARY "ADVAPI32.DLL"

Script:
string ls_username
string ls_var
ulong lu_val
boolean rtn
lu_val = 255
ls_username = Space( 255 )
rtn = GetUserNameA(ls_username, lu_val)
Messagebox("GetUserNameA", "Username = " + string(ls_username))

Para mas información de funciones del windows que puedes utilizar entra con este link...

http://www.ikarhomecenter.ru/index.php?p=p...etComputerNameA
leopoldotaylhardat@hotmail.com

Leopoldo Taylhardat

Software, Organización y Sistemas

Maracay, Venezuela


"En computación solo hay una cosa segura...
   que no hay nada seguro" - Leopoldo Taylhardat

"Cada alternativa que tengas durante la búsqueda,
      será una meta en sí misma" - Jorge Olguín.

evmuv

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
    • http://evmuv.iespana.es
Re: Obtener Nombre De La Pcy Usuario
« Respuesta #2 en: Sábado 23 de Septiembre de 2006, 00:18 »
0
Hola, primero, gracias por la ayuda.
Pero, no lo vas a creer, me siguen saliendo las mismas letras chinas(creo que chinas) en el mensaje, la verdad es que no se a que se deberá, esto es lo ke me sale en los mensajes:
Computer name is:  䕓噒䍅J
Username = 摁業楮瑳慲潤r

No sé si se lea, pero letras chinas, espero que alguien pueda ayudarme, y explicarme porque salen ese tipo de letras, gracias.

preatorian

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Obtener Nombre De La Pcy Usuario
« Respuesta #3 en: Martes 9 de Noviembre de 2010, 16:27 »
0
Saludos

yo coloque el código que indican pero de la misma forma me salen símbolos y no el nombre del PC.

Juanra15

  • Miembro activo
  • **
  • Mensajes: 55
  • Nacionalidad: uy
    • Ver Perfil
Re:Obtener Nombre De La Pcy Usuario
« Respuesta #4 en: Viernes 16 de Septiembre de 2011, 16:07 »
0
hola 摁業楮瑳慲潤

en global external function
function int gethostname ( ref string name, int namelen ) library "wsock32.dll"

hace una funcion sin parametros que retorne un string

string      ls_HostName = space(128)
string      ls_IpAddress
int      li_version = 257
blob{4}    lb_hostaddress
unsignedinteger version
unsignedinteger highversion
character description[257]
character systemstatus[129]
unsignedinteger maxsockets
unsignedinteger maxupddg
string vendorinfo
IF gethostname ( ls_HostName, len(ls_HostName) ) >= 0 THEN
      return upper(ls_HostName)
END IF

y despues es sle_nombrePc.text = nombreFuncion()

y listo el pollo, probalo y comenta si te funciono.

Saludos Juan

lucasgomesb

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil