SoloCodigo

Programación General => Power Builder => Mensaje iniciado por: evmuv en Martes 19 de Septiembre de 2006, 22:56

Título: Obtener Nombre De La Pcy Usuario
Publicado por: evmuv en Martes 19 de Septiembre de 2006, 22:56
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:
Título: Re: Obtener Nombre De La Pcy Usuario
Publicado por: leoandres en Martes 19 de Septiembre de 2006, 23:45
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 (http://www.ikarhomecenter.ru/index.php?p=pb_2-2-e#GetComputerNameA)
Título: Re: Obtener Nombre De La Pcy Usuario
Publicado por: evmuv en Sábado 23 de Septiembre de 2006, 00:18
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.
Título: Re: Obtener Nombre De La Pcy Usuario
Publicado por: preatorian en Martes 9 de Noviembre de 2010, 16:27
Saludos

yo coloque el código que indican pero de la misma forma me salen símbolos y no el nombre del PC.
Título: Re:Obtener Nombre De La Pcy Usuario
Publicado por: Juanra15 en Viernes 16 de Septiembre de 2011, 16:07
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
Título: Re:Obtener Nombre De La Pcy Usuario
Publicado por: lucasgomesb en Viernes 11 de Enero de 2013, 12:31
Una más completa:
http://www.powerbuilderblog.blogspot.com.br/2013/01/autenticacao-windows-em-uma-aplicacao.html