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