**TestStack White**: (partial open-source) > [White][1] is an open-source framework for automating rich client > applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) > platforms. It is .NET based and does not require the use of any > proprietary scripting languages. Tests/automation programs using White > can be written with whatever .NET language, IDE and tools you are > already using. White provides a consistent object-oriented API, hiding > the complexity of [Microsoft's UIAutomation library][2] (on which > White is based) and windows messages. With the free [Visual Studio Express][3] you can create automated tests with the .Net framework. See my example console C# app code to automate notepad.exe below: <!-- language: lang-cs --> using System; using TestStack.White; using TestStack.White.InputDevices; using TestStack.White.UIItems.Finders; using TestStack.White.UIItems.MenuItems; using TestStack.White.UIItems.WindowItems; namespace WhiteTest { class Program { static void Main(string[] args) { Tests tests = new Tests(); tests.Notepad(); } } class Tests { public void Notepad() { // Arrange Application app = Application.Launch("notepad.exe"); Window window = app.GetWindow("Untitled - Notepad"); // Act var box = window.Get(SearchCriteria.ByClassName("Edit")); Keyboard.Instance.Send("test", box); window.MenuBar.MenuItem("File", "Save As...").Click(); var filename = window.Get(SearchCriteria.ByClassName("Edit")); Keyboard.Instance.Send(DateTime.Now.ToString("yyyyMMddHHmmssffff") + "test.txt", filename); window.Get(SearchCriteria.ByText("Save")).Click(); app.Kill(); // Assert // file is created in Documents folder } } } [1]: https://github.com/TestStack/White [2]: http://msdn.microsoft.com/en-us/library/ms753107(v=vs.110).aspx [3]: http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx