We are looking for a way to automate windows forms for acceptance testing. Our requirements are:
We use TestComplete for automating our Windows forms test cases. It is a pretty good product overall.
The main issue you will run into is that while most of these products will meet all of your requirements, you are going to run into a lot of maintenance issues, especially having non-developers recording the tests.
Although it may seem like a good idea to quickly record all of your tests then have them run from the recordings, you will have a much better ROI by actually treating your automated tests like regular development. Recordings will leave you with a lot of duplicated code, which is very difficult to maintain. By properly designing the tests and breaking out reusable code you will end up with much more stable tests and you will be able to get your results much quicker.