lunes, diciembre 03, 2012

VFP: Obtener el nombre del PC en ambiente Terminal Server

Siempre he dicho que en lo simple esta la belleza del Universo y hoy vi esto confirmado una vez mas.

Es un escenario cada vez mas común el de ejecutar sistemas administrativos mediante sesiones de Terminal Server.  En este escenario, la función SYS(0) devuelve el nombre del equipo donde se esta ejecutando la sesión de TS y NO el equipo "cliente", que seria el que en definitiva nos interesaría. Este problema lo había resuelto hace tiempo mediante llamadas al API de TS que me permitían obtener el nombre del equipo cliente.

Pero hoy, el gran Maestro Luis Maria Guayan me ha sorprendido con una forma mucho mas simple y elegante de resolver el problema:


IF UPPER(LEFT(GETENV("SESSIONNAME"),3)) == "RDP" 
  lcPC = GETENV("CLIENTNAME")
ELSE
  lcPC = GETENV("COMPUTERNAME")
ENDIF



Increíblemente simple!!