Power Builder - Alguien utilizo la API WTSQuerySessionInfomation

 
Vista:

Alguien utilizo la API WTSQuerySessionInfomation

Publicado por Luis (5 intervenciones) el 02/09/2006 15:49:23
Alguien tiene idéa de como pasar los datos a esta API(WTSQuerySessionInfomation) en PB
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:Alguien utilizo la API WTSQuerySessionInfomatio

Publicado por luis (5 intervenciones) el 05/09/2006 23:22:23
yo mismo encontre el problema lo dejo ya que me costo mucho encontrar esto, espero que alguien le sirva solución....
POWER BUILDER API PARA TERMINAL SERVER
//APIS necesarias para recuperar los datos del terminal server-Agregar a las
//Declare External Function
Function Boolean WTSQuerySessionInformationA( uLong hServer, uLong SessionId, uLong WTSInfoClass, Ref ulong ppBuffer, Ref uLong pBytesReturned) Library "Wtsapi32.dll"
SUBROUTINE WTSFreeMemory( ULONG pMemory ) Library "Wtsapi32.dll"
//recupera un dato de la direccion especificada
SUBROUTINE MoveMemoryPointerToString( REF String Destination, ULong ul_Source, ULong ul_Size ) Library "KERNEL32.DLL" Alias For "RtlMoveMemory"
SUBROUTINE MoveMemoryPointerToULONG( REF ulong Destination, ULong ul_Source, ULong ul_Size ) Library "KERNEL32.DLL" Alias For "RtlMoveMemory"

/*Esta funcion permite obtener los datos del terminal server*/
/*Retorna -1 si no se encuentra en un terminal server*/
Boolean lb_succes
Integer RetVal = 0
uLong ll_BuffLen = 256
string ls_nombre
string ls_terminal
/*Estos datos se agregan para la terminal actual*/
ulong WTS_CURRENT_SERVER_HANDLE=0
ulong WTS_CURRENT_SESSION=-1
ulong WTS_UserTerminal=10
ulong lulong_dato
ulong lulong_sessionid
ls_nombre=space(256)

/*=============================*/
/*Recupero el nombre de la terminal*/
/*===================== ========*/
lb_succes = WTSQuerySessionInformationA(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTS_UserTerminal, lulong_dato,ll_BuffLen)
IF lb_succes = TRUE THEN
MoveMemoryPointerToString( ls_nombre, lulong_dato, ll_BuffLen)
is_terminal=ls_nombre
ELSE
//si no es un terminal server devuelvo -1
return -1
END IF
//libero la memoria utilizada en la función anterior
WTSFreeMemory( ll_BuffLen)
/*===================*/
/*Recupero el sessionid */
/*===================*/
lb_succes = false
lb_succes = WTSQuerySessionInformationA(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, WTSSessionId, lulong_dato,ll_BuffLen)
IF lb_succes = TRUE THEN
MoveMemoryPointerToULONG(lulong_sessionid,lulong_dato,ll_BuffLen)
iulong_session_id=lulong_sessionid
ELSE
//no se encontro el session id
return -2
END IF
WTSFreeMemory( ll_BuffLen)

return 0
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:Alguien utilizo la API WTSQuerySessionInfomatio

Publicado por Jorge (900 intervenciones) el 06/09/2006 15:43:54
Gracias por compartir el esfuerzo
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