anchor.diff:    Str.Free;
   end;
   
  +function TMainForm.ExecWait(Cmdline: String): Boolean;
  +var
  +  si: STARTUPINFO;
  +  pi: PROCESS_INFORMATION;
  +begin
  +  Result := False;
  +  ZeroMemory(@si, sizeof(si));
  +  si.cb := sizeof(si);
  +  si.dwFlags := STARTF_USESHOWWINDOW;
  +  si.wShowWindow := SW_HIDE;
  +  UniqueString(Cmdline);
  +  if not CreateProcess(nil, PWideChar(Cmdline), nil, nil, True, 0, nil, nil, si, pi) then begin
  +    MessageBox(Handle,
  +      PWideChar('CreateProcess error (code: ' + IntToStr(GetLastError) + ').'),
  +      'Error', MB_ICONERROR or MB_OK);
  +    Exit;
  +  end;
  +  CloseHandle(pi.hThread);
  +  WaitForSingleObject(pi.hProcess, INFINITE);
  +  CloseHandle(pi.hProcess);
  +  Result := True;
  +end;
  +
   procedure TMainForm.ReadSettings;
   var
     Reg: TRegistry;
  
positive.code:     Reg.WriteInteger('PortNumber', seRDPPort.Value);
    except
  
    end;
    case rgNLA.ItemIndex of
      0: begin
  
negative.code:     { Private declarations }
    public
      { Public declarations }
      function ExecWait(Cmdline: String): Boolean;
      procedure ReadSettings;
      procedure WriteSettings;
    end;
  