Есть задача определение IP и имя удаленного компьютера подключенного через терминальный доступ (RDB).
function WTSQuerySessionInformationA(hServer: THandle; SessionId: Integer;
WTSInfoClass: Integer; var ppBuffer: Pointer; var pBytesReturned: DWORD
): BOOL; stdcall; external 'wtsapi32.dll' name 'WTSQuerySessionInformationA';
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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
if WTSQuerySessionInformationA(WTS_CUR_SERVER_HANDLE,WTS_CURRENT_SESSION,WTSClientAddress,ppBuffer, BufSize) then
try
finally
WTSFreeMemory(ppBuffer);
end ;
end ;
|