Ver Mensaje Individual
  #6  
Antiguo 24-05-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Reputación: 19
olbeup Va camino a la fama
Cita:
Empezado por cmagno Ver Mensaje
Hola a todos. Estuve buscando en el foro y vi varios hilos con título similar, pero en ninguno encontré una respuesta. Mi caso es el siguiente: tengo una aplicación hecha en Delphi7 + Oracle 10g. La aplicación corre en un servidor Terminal Server y es usada por aproximadamente 1000 usuarios en diversas ciudades. Por disposiciones legales, nos exigen generar un informe diario de ventas que debe incluir la máquina cliente desde la que se solicita el reporte y el servidor donde se procesa. El problema es que al estar sobre terminal server, para la aplicación el cliente y el servidor son el mismo. Cómo puedo hacer para que mi aplicación desde Terminal Server conozca el nombre de la máquina o la IP del equipo cliente que se conecta?.

Gracias de antemano por al colaboración.
Hola cmagno,

Mira haber esta:

Código Delphi [-]
function GetIDComputerName: String;

  function GetEnvVarValue(const VarName: String): String;
  var
    BufSize: Integer;
  begin
    BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
    if (BufSize > 0) then
    begin
      SetLength(Result, BufSize -1);
      GetEnvironmentVariable(PChar(VarName), PChar(Result), BufSize);
    end
    else
      Result := '';
  end;

begin
  // Esto es para Terminal Server
    //   Primero recoger en LOCAL (CLIENTNAME) si devuelve '' nada esto significa que el
    // CLIENTNAME no existe en TERMINAL SERVER eso quiere decir que estamos en
    // LOCAL y la variable suya es COMPUTERNAME
  Result := GetEnvVarValue('CLIENTNAME');
  if (Length(Result) = 0) then
    Result := GetEnvVarValue('COMPUTERNAME');
end;

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita