Показать сообщение отдельно
  #1  
Старый 07.10.2023, 12:01
infopol infopol вне форума
Прохожий
 
Регистрация: 03.06.2021
Сообщения: 35
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как получить функцию NumGet?

Есть задача определение IP и имя удаленного компьютера подключенного через терминальный доступ (RDB).
function WTSQuerySessionInformationA(hServer: THandle; SessionId: Integer;
WTSInfoClass: Integer; var ppBuffer: Pointer; var pBytesReturned: DWORD
): BOOL; stdcall; external 'wtsapi32.dll' name 'WTSQuerySessionInformationA';

Код:
const
WTSClientAddress=14
WTS_CURRENT_SESSION=-1

function Get_TerminalSesion :String;
var
  BufSize: Cardinal;
  ppBuffer:Pointer;
  pBuf:PAnsiChar;
  pSessionId: DWORD;
  const
    WTS_CURRENT_SESSION=-1;
     WTS_CUR_SERVER_HANDLE  =0;

  begin

//  WTS_CURRENT_SERVER_HANDLE:=0;

//  ProcessIdToSessionId(GetCurrentProcessId, pSessionId);
  // èëè pSessionId := DWORD(-1);
  if WTSQuerySessionInformationA(WTS_CUR_SERVER_HANDLE,WTS_CURRENT_SESSION,WTSClientAddress,ppBuffer, BufSize) then
  try
           //  pBuf:=@ppBuffer;
//  (pBuf) ;
//  ShowMessage( pBuf);
    //NumGet(Pointer(pBuf),0,'u')   ;
// SetString(Result, ppBuffer^, BufSize);
 // (ppBuffer);
  finally
    WTSFreeMemory(ppBuffer);
  end;
end;
Ответить с цитированием