Disclaimer: I am a developer on the products that I am going to mention.
If you are looking for a tool that will let you know what a user is doing with your application but do not need actual screen captures you can look into using Runtime Intelligence from PreEmptive Solutions.
What we do is to inject additional code into your application after it is built (similar to PostSharp's IL Weaving) that sends data back to a central collection and reporting portal whenever methods that you decorate with attributes are executed. This allows you to track when users are using your application, which of the decorated methods are executed (and it can also give you measurements of how long the decorated methods take to execute) and if the user exited your application as expected or if there was an error. The data can be sent back either to servers hosted at PreEmptive (both a free and commercial version) or to any URL of your choosing if you want to capture and store the data yourself.
Since this relies on using Dotfuscator as the code injection engine this functionality can be added to any .NET application (console, Winforms, WPF, Silverlight, etc) as a post build step. We provide both a set of custom attributes if you want to decorate methods in your source or you can use our user interface to can specify which methods will be instrumented and that data will be stored inside of the Dotfuscator project file. If you use the Extended Attributes feature of storing the injection points in the project file you can completely instrument an application without touching the original source code.
We provide a hook so that you can give your user the choice of opting in or out of the usage tracking. Since we work at a low level this does require that you write a method, property or field that contains a boolean value indicating if data should be sent that we check at runtime. You are responsible for actually creating the UI for opt-in/opt-out.
A free version of all of this, including a freely accessible data reporting portal, is going to be available in Visual Studio 2010 as part of Dotfuscator Community Edition. You can go ahead and download Visual Studio 2010 Beta 1 and try it out today if you wish.
The free functionality is a subset of what is available in the commercial version but it will give you a good idea of how easy it is to use. As always, PreEmptive is happy to provide you with a free, time limited evaluation version of the commercial editions so you can test out the unlimited functionality version.
I am currently writing a series of blog articles on using this as part of Visual Studio 2010, the first one is here and an overview of everything coming in Visual Studio 2010 Beta 1 is here.
Runtime Intelligence is also available for use on any Java application by using DashO for Java as the code injection platform. There is currently no community version of this although there is always the time limited evaluation version.