In der Voreinstellung geben VNC-Server wie eben jener von TightVNC immer den gesamten Desktop frei, mitunter möchte man allerdings nur ein bestimmtes Fenster teilen.

Damit das klappt muss wenig beachtet werden:

  • Der Dienst oder die App muss gestartet sein und
  • erst dann das freizugebene Fenster, etc. festlegen.
  • Das gewünschte Fenster sollte zudem nicht minimiert sein.

In so mancher Anleitungen oder Doku entsteht der Eindruck, das man mit einem Einzeiler sowohl Dienst oder App samt Freigabe starten könnte. Dem ist allerdings nicht so und dies führt in der Regel nur dazu, das man die Hilfe angezeigt bekommt:

Leider liefert auch die offizielle Dokumentation (PDF) keinen direkten Hinweis außer vielleicht

The server receives only one command at a time.

bzw. Beispiele auf die “richtige” Reihenfolge. Anbei ein Beispiel wie die Befehle abgesetzt werden müssen:

"C:\Program Files\TightVNC\tvnserver.exe" -run
"C:\Program Files\TightVNC\tvnserver.exe" -controlapp -sharewindow Editor

In diesem Fall wird der TightVNC Server als App gestartet und anschließend Notepad/Editor freigegeben. Nutzt man den Dienst, muss dieser laufen und erst dann kann man die eigentliche Freigabe erstellen:

"C:\Program Files\TightVNC\tvnserver.exe" -controlservice -sharewindow Editor

Setzt man die Befehle direkt hintereinander ab, z.B. mittels Batch-Skript, klappt es i.d.R. nicht mit der Freigabe, da die App oder der Dienst noch nicht richtig gestartet sind. In diesem Fall genügt mindestens eine kurze Pause (beispielsweise “timeout /t 5”) zwischen den Befehlen.

Es wird allerdings nicht nur das gewünschte Fenster freigegeben, sondern ggf. über diesem Fenster befindliche Inhalte ebenfalls. Bestes Beispiel wäre der Task-Manager im Vordergrund, sofern sich dessen Fenster mit dem eigentlich gewünschten Fensters überschneiden:

Möchte man wieder den gesamten Desktop freigeben geht dies mit

"C:\Program Files\TightVNC\tvnserver.exe" -controlapp -sharefull

bzw.

"C:\Program Files\TightVNC\tvnserver.exe" -controlservice -sharefull

Update 03.08.2022

Einen Typo korrigiert und den Punkt mit der Pause zwischen den Befehlen eingefügt.