Free Open Source Computer Lab Monitoring Software Using VNC
I teach in a PC computer lab. As a teacher, I need to help and observe all of the computers at the same time. For Mac OS X there is a great piece of software called Apple’s Remote Desktop. On the teacher’s computer monitor it presents a live scaled-down view of all of the computer screens in the lab. The teacher can watch all the students doing work and when necessary, focus in on one computer and move that computer’s cursor with their own mouse.
For PC/Windows labs there is a program called VNC which allows one computer to watch and control another computer. Unfortunately, viewing is intended to be only one at a time. But, the great thing about VNC is that it is a free open source project, which means anyone can use it and improve it.
Viewer & Servers:
There are two parts to VNC, a Server program and a Viewer program. The Server program shares a computer’s screen over a network. The Viewer program connects to a server and redraws the remote computer’s screen on it’s monitor. Because the software is split this way, watching multiple computers at the same time just entails creating a bunch of (small) VNC Viewers within a single program. No modifications need to be made to the Server and minimal changes to the Viewer.
I wrote VncThumbnailViewer in Java to make use of TightVNC‘s java vncviewer. The VncViewer code is pretty modular, so creating a program that contains vncviewers wasn’t too complicated.
- Install and start a VNC Server on all lab machines. If you use UltraVnc or TightVnc on Windows it can install itself as a Service so it’s always running. If you have Macs a VNC server is already installed.
- Get a list of the IP addresses or hostnames of the computers.
- Start VncThumbnailViewer on the teacher’s computer.
• I have bundled the jar file in Windows & Mac executables, so you should be able to just double-click it.
• If you are familiar with Command Prompt, you can launch the viewer from a command line while specifying the hosts, ports, and passwords as such:
c:\ vncthumbnailviewer.exe HOST 192.168.0.100 PORT 5900 PASSWORD pass HOST 192.168.0.106 PORT 5900 PASSWORD pass
- To add computers type in the IP address or Hostname, Port number, and vncserver Password in the dialog, then click "Add" for each computer. The viewers dynamically scale to fit in the window.
- Double-clicking on a thumbnail will put that view in a new window with control of the mouse and keyboard.
VncThumbnailViewer Java Source Code
UltraVnc recommended VNC Server for Windows
Enabling the VNC Server for Mac OS X
Improvements & Fixes:
- Version 1.0 - Jan. 1 - First working version.
- Version 1.1 - Jan. 21 - Can specify host/port/password on the commandline.
- Version 1.2 - Feb. 3 - Fixed some bugs. Now compatible with older versions of Java VM.
- Version 1.3 - Feb. 25 - UltraVnc's MS-Logon is now supported.
- Version 1.3.1 - Mar. 15 - Fixed some bugs. Improved icon.
- Version 1.4 - Mar. 31 - Added ability to Save and Load a list of host computers.
- Version 1.4.2 - May 19 - Fixed some bugs.
I am not finished with the VncThumbnailViewer. The program works, and does what it's expected to. Still, there are several things I want to improve and I'm sure there are bugs that need to be fixed. If you use VncThumbnailViewer and would like something added or fixed leave a comment below. Or, if you can, download the source code, make changes, and share them back.
There are other programs designed to work similarly to VncThumbnailViewer. Before beginning this project I tried and used several of them, but each had it's own deficiencies.