The old Mac was a little pokey, but it worked well for Daniel. Its biggest limitation was the lack of software. As his skills improved, I wanted to add more programs, and there simply weren’t that many educational titles available for older Macs. There were so many more titles available for the PC that I decided to embrace the Dark Side of the Force and move him to Windows, and in the process, try to write my own version of a program launcher similar to the little window of icons that sat in the corner of the Mac’s screen.
In addition to making his programs easily accessible, I wanted my launcher to provide the PC with some protection from misguided input from Daniel, and Thomas, too, as he was now discovering the computer.
Launching Shuttle
At the time, I was most familiar with Visual Basic 6, so that became the development platform. The bulk of the launcher’s interface was pretty straightforward in VB, and it was only when I began implementing features to protect the computer that I ran up against VB’s limitations and had to resort to API calls. These were required to hide the task bar and trap for certain key presses, for instance. I also used a few third-party components like a custom button control that provided more options than VB’s native button control. The basic framework of what I called Shuttle was complete within a few months.
While Shuttle behaved similarly to the program launcher on the Mac, it looked different, and programs ran faster, since the PC was more powerful than the Mac. Daniel is extremely resistant to change, so it took quite a bit of pleading and prodding to get him to use it. Once he got used to it, we had trouble dragging him away from it.
One advantage to moving to the PC was using a program from FarStone called
VirtualDrive to load CD-ROMs onto the hard drive, which previously had not cooperated. VirtualDrive created a virtual CD-ROM drive, assigning it a drive letter, for each program. On this particular PC, that meant we were limited to using 23 programs in conjunction with VirtualDrive, but it was some time before we reached that limit. When we finally did, I switched to a similar but far superior program called
VirtualCD from H+H Software GmbH. It has a ton of features, and it can be configured in numerous ways. In our case, I used it to create a single virtual CD-ROM drive and then to programmatically load and eject virtual CD-ROMs of programs which were also created using VirtualCD. With this configuration, the number of CD-ROM-based programs we can load onto the hard drive is limited only by drive space.
Over the years, I’ve added more features, such as a timer to limit play, a means to change the background pattern of the main interface and an administrative form from which Karen or I can disable programs if they’re played too obsessively.