Packed
ist (aus Erfahrung) im Zusammenhang mit der
WinAPI (oder anderen
API's) immer falsch.
Außerdem würde ich mir an deiner Stelle nicht so viel Mühe machen. Es gibt doch z.B. die
Jedi-
WinAPI. Die kannst du z.B. von
hier per
svn auschecken und hast damit alle Funktionen da.
Damit funktioniert auch dieser Code:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
info : pWtsSessionInfo;
cnt,
idx : Cardinal;
begin
if WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, info, cnt) then
begin
for idx := 0 to cnt - 1 do
begin
Memo1.Lines.Add(IntToStr(info^.SessionId) + ' - ' + info^.pWinStationName);
Inc(info);
end;
WTSFreeMemory(info);
end;
end;