Only when the face itself is displayed do things appear to be actually happening (and in that case there are things happening, a graphic file is being downloaded to the hard disk and being processed over and over again).

Hmmm, I suspect I might be pointing out the obvious when I say that there's no reason to write the screen image to disk before displaying it? I havn't played with empegface yet, but I assume you aren't doing that.

As someone who's enjoying my operating systems class at the moment, I can tell you that any program that takes all available CPU time to accomplish a set task is doing something wrong. I have no idea how you've implemented everything (and I've never done any windows programming, so perhaps this problem lies in windows) but it would really seem like the program should do some sort of sleeping in between requesting a screen dump and getting it back. Perhaps you could also test and see how many identical copies of the screen you're getting back and only query the empeg at the interval that yields a new screen most of the time?

Matthew