Power Builder - Obtener Usuario y hostname de mi pc

 
Vista:

Obtener Usuario y hostname de mi pc

Publicado por loza (8 intervenciones) el 07/09/2006 17:32:40
Señores

La consulta es la siguiente:
He utilizado un api de windows para obtener el usuario y hostname de mi pc en red, y bueno no he podido, pues los codigo que he utilizado son los siguientes:

Function Long WNetGetUser (Ref String lpName, Ref String lpUserName, Ref Long lpnLength) Library "mpr" Alias For "WNetGetUserA"
o
FUNCTION boolean GetUserNameA(ref string uname, ref ulong slength) LIBRARY "ADVAPI32.DLL"
y
Function Long GetComputerName (Ref String lpBuffer, Ref Long nSize) Library "kernel32" Alias For "GetComputerNameA"

luego he creado la funcion f_user que devuelve un string

string ls_NullString, ls_UserName
long ll_largo
SetNull (ls_NullString)
ls_UserName = Space (256)
ll_largo = 256
WNetGetUser(ls_nullString, ls_UserName, ll_largo)
return trim (ls_UserName)

o este:

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))
return ls_username

Pero me retorna en la cadena unos caracteres estraños. Les agradeceria me pudieran ayudar. de la misma forma me retorna en la funcion mas abajo

Hay alguna menera de saber que tipo de caractes son o simplemente estoy cayendo en un erros

Pues segun la informacion obtenida de la pagina de Sybase la funcion es tal como la uso, pero me recomienda dar un espeacio sufciente sino caerie en error GPF:

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))

Gracias de antemano. Espero una pronta ayudita.

---------------------------------------------------------------------
Luego creo la funcion f_namehost que devuelve un string

string ls_ComputerName
long ll_largo
ls_ComputerName = space (256)
ll_largo = 256
GetComputerName (ls_ComputerName, ll_largo)
return trim (ls_ComputerName)

Luego llamamo de cualquier parte de mi codigo a las funciones

string ls_namehost , ls_user
ls_namehost = f_namehost()
ls_user= f_user()
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:Obtener Usuario y hostname de mi pc

Publicado por Jorge (900 intervenciones) el 07/09/2006 18:03:35
Hola

Version de PB que usas ??
si es 10 tienes modificarla debido a que PB ya es UNICODE

//Nombre Usuario
FUNCTION boolean GetUserNameA(ref string uname, ref ulong slength) LIBRARY "ADVAPI32.DLL" alias for "GetUserNameA;Ansi"
//Nombre Equipo
FUNCTION boolean GetComputerNameA(ref string cname,ref long nbuf) LIBRARY "Kernel32.dll" alias for "GetComputerNameA;Ansi"

string ls_username
string ls_var
ulong lu_val
boolean rtn

lu_val = 255
ls_username = Space( 255 )
rtn = GetUserNameA(ls_username, lu_val)

string ls_compname
long ll_buf

ll_buf = 25
ls_compname = space(ll_buf)
GetComputerNameA(ls_compname, ll_buf)


Saludos desde ARGENTINA
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:Obtener Usuario y hostname de mi pc

Publicado por Raul (8 intervenciones) el 07/09/2006 18:17:15
Gracias, Jorge

Saludos cordiales.
Lima - Perú
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:Obtener Usuario y hostname de mi pc

Publicado por luis (50 intervenciones) el 07/09/2006 18:31:57
string is_usuario

RegistryGet ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", &
"DefaultUserName",RegString!,is_usuario)
messagebox('mensaje', is_usuario)

prueba con esto para obtener el hotname de tu maquina
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:Obtener Usuario y hostname de mi pc

Publicado por Raul (8 intervenciones) el 07/09/2006 18:37:56
Muchas Gracias

Ya resolvi el problema

Saludos cordiales.
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