unit Agent; interface uses DnaCodeService, GebruikerService, System.SysUtils; type TAgent = class private function ComputerName: String; function WUserName: String; public function FullName: String; function GebruikerAanmelden(Initialen: string; LoginCode: string): GebruikerAanmeldenResponse; function GebruikerAfmelden(Initialen: string; LoginCode: string): boolean; end; implementation uses Winapi.Windows; { TAgent } function TAgent.GebruikerAanmelden(Initialen, LoginCode: string): GebruikerAanmeldenResponse; var Service: GebruikerServiceSoap; Request: GebruikerAanmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAanmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := Initialen; Request.LoginCode := LoginCode; Header.Initialen := Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Result := Service.GebruikerAanmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAfmelden(Initialen, LoginCode: string): boolean; var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := Initialen; Request.LoginCode := LoginCode; Header.Initialen := Initialen; Request.Header := Header; Service.GebruikerAfmelden(Request); Result := true; finally Request.Free; end; end; function TAgent.ComputerName: String; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; function TAgent.WUserName: String; var nSize: DWord; begin nSize := 1024; SetLength(Result, nSize); if GetUserName(PChar(Result), nSize) then SetLength(Result, nSize-1) else RaiseLastOSError; end; function TAgent.FullName: String; begin Result := ComputerName + ' / ' + WUserName; end; end.