Bei der Verwendung von VNC in Kombination mit RDP habe ich ein Verhalten festgestellt, das VNC hat, wenn Sie mit RDP (mstsc) eine Maschine verbunden haben und dann eine Verbindung herstellen möchten Maschine mit VNC, trennt die RDP-Sitzung, und Sie sehen einen Bildschirm blinken (schwarzer Bildschirm für eine Sekunde) auf dem Zielrechner und dann sind Sie über VNC verbunden, Was ich wissen will ist, dass VNC die aktive trennt RDP-Sessions, Jedes Code-Snippet wird wirklich hilfreich sein. DankeWie VNC die bereits verbundene RDP-Sitzung trennt
1
A
Antwort
2
Wenn Sie über VNC verbinden versucht es eine Verbindung mit der Konsole Sitzung mit WinStationConnectW (was undokumentiert ist) dies wird die RDP-Sitzung trennen.
Here is a snippet von TightVNC:
void setConsoleSession(DWORD sessionId) {
#ifdef RFB_HAVE_WINSTATION_CONNECT
if (!_WinStationConnect.isValid())
throw rdr::Exception("WinSta APIs missing");
if (sessionId == -1)
sessionId = mySessionId.id;
// Try to reconnect our session to the console
ConsoleSessionId console;
vlog.info("Console session is %d", console.id);
if (!(*_WinStationConnect)(0, sessionId, console.id, L"", 0))
throw rdr::SystemException("Unable to connect session to Console", GetLastError());
// Lock the newly connected session, for security
if (_LockWorkStation.isValid())
(*_LockWorkStation)();
#else
throw rdr::Exception("setConsoleSession not implemented");
#endif
}