Tuesday, July 17, 2007

Must-have tools for Windows application developers

Summary: A continuously updated list of free software applications recommended for Windows application developers.

If you find yourself in business of writing, deploying, or troubleshooting software for Windows, you may appreciate the following FREE tools and utilities:

AnVir Task Manager Free shows the detailed information about every running process, as well as applications running automatically on Windows startup (including all hidden applications). AnVir Task Manager is similar to System Explorer, but it offers several distinct features, such as alerts and ability to block auto-started programs, a view showing command-line parameters used by running processes, and more.
Altiris Software Virtualization Solution (SVS) allows you to install and run applications in a virtual sand box on your computer. If you often download and test new applications (especially alpha and beta versions), Altiris SVS can help prevent these applications from corrupting your Windows registry, files, system and user settings, and so on. For more information and review, read the Online Tech Tips review.
AutoHotKey can create hotkeys for keyboard, joystick, and mouse. It can expand abbreviations as you type them (for example, typing "btw" can automatically produce "by the way"). Use AutoHotKey to create custom data-entry forms, user interfaces, and menu bars, remap keys and buttons on your keyboard, joystick, and mouse. The program can convert any script into an executable file that can be run on computers that don't have AutoHotkey installed.
BareTail is a real-time log file monitoring tool, which can handle very large files (over 2 GB), highlight lines with errors, monitor changes in multiple files, and do more.
DiffMerge is an application to compare and merge files and folders. The program is compatible with 42 different character encodings.
Dropcloth allows you to cover inactive desktop windows with a solid background, so that you can focus on just one application without closing out or minimizing anything. This feature is especially helpful when you use multiple applications in a presentation.
Error Code Look-up is a command-line tool, which determines error values from decimal and hexadecimal error codes in Microsoft Windows® operating systems. The tool can look up one or more values at a time. All values on the command line will be looked up in Exchange’s internal tables and presented to you (errors do not need to be specific to Exchange). If available, informational data associated with the value(s) will also be shown.
Fiddler logs all HTTP traffic between your computer and the Internet allowing debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, Opera, and more.
FileMon monitors and displays file system activity on a system in real-time. Its advanced capabilities make it a powerful tool for exploring the way Windows works, seeing how applications use the files and DLLs, or tracking down problems in system or application file configurations.
Imagicon can convert image files to icons (as well as other image formats). When converting images to icons, you can enable alpha transparency. Supported icon sizes include: 16x16, 32x32, 48x48, 64x64, and 128x128.
Intype is a powerful and intuitive code editor, which is easily extensible and customizable, thanks in part to its support for scripting and native plug-ins. At the time of writing, Intype was still in alpha version, but it looked quite promising. I wish it had a toolbar, though.
InUse (File-In-Use Replace Utility) is a command-line tool, which can replace files in use by the operating system.
NDoc is a code documentation generator, which builds help files from .NET assemblies and the XML documentation files generated by the C# and VB.NET compilers (VB.NET requires the VBCommenter add-in, which I could not find). Unfortunately, the last official release of NDoc was written for .NET Framework 1.1 (let's say thanks to Microsoft for Sandcastle [sarcasm intended], which promised a lot and delivered little), but a reasonably stable alpha build of NDoc 2.0 (targeting .NET Framework 2.0) is still available.
Pixelformer is an advanced icon editor which offers support for different color depths up to 32-bit RGB with alpha channel, lossless target color depth switchin, semi-transparent colors, free-form masking, multiple layer support, in-place supersampling, icon extraction capability, PNG size optimization, Vista icon optimization, and more.
Process Explorer shows which file handles and DLLs processes have opened or loaded.
Process Monitor is an advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity. It combines the features of Filemon and Regmon, and adds an extensive list of enhancements including rich and non-destructive filtering, comprehensive event properties such session IDs and user names, reliable process information, full thread stacks with integrated symbol support for each operation, simultaneous logging to a file, and much more.
Reflector for .NET is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector can decompile .NET assemblies back to C# or Visual Basic code. See also .NET Reflector Add-Ins.
RegMon is a utility that monitors changes in Windows Registry. It shows which applications are accessing Registry, which keys they are accessing, and the Registry data that they are reading and writing - all in real-time.
Screen2Exe creates highly compressed screen demos.
SideSlide is a desktop extension which can be used to group related items, such as shortcuts to files and folders, URLs, notes, and more.
SmartClose simplifies and automates the process of closing running applications, which is often required during software installations. It stores the running program information as a system snapshot and restarts/restores them later. The program allows you to exclude programs from being closed and automatically skips applications that are required for the Windows system to run.
SnippetCompiler offers a fast and easy way to compile code snippets written in C# or VB.NET, so that you do not have to create a new Visual Studio project every time you need to test a small code block.
SweptAway is a simple system tray utility that automatically minimizes applications that you aren't using.
SysAngel DVD Generator can be used to create Windows installation DVDs, which include new drivers, service packs, and hot fixes; this will make subsequent OS installations much faster.
SysExporter allows you to copy data displayed in standard list view, tree view, list box, combo box, text box, and WebBrowser/HTML controls from almost any application running on your system. Not many people would need this functionality, but when you need it, it's really handy.
System Explorer is a much better version of the lame built-in Windows Task Manager. It can show additional information about running processes, such as full path to the application executable network connections, and open files. Using System Explorer, you can easily check for suspicious files, search details about files and processes via online databases, and quickly access system utilities. If you like System Explorer, you can configure it so that it gets invoked instead of Task Manager (as I do). Note: To add a column to the Processes view (such as a User Name, which is not visible by default), you need to right-click a column header, and make sure the column is checked.
TopStyle Lite is a simple Cascading Style Sheet (CSS) editor. The tool includes a multi-browser style checker and validator, which alerts you about invalid entries and highlights styles that may be affected by bugs in different Web browsers. TopStyle Lite can create a basic style sheet from an existing HTML file, and all you need to do is simply apply styles to all the relevant tags in this document. Properties can be altered using the drop-down menus, or through manual entry. Any property that isn't supported by the current CSS definition will be highlighted in red, enabling easy location of errors later on. The interface enables you to preview the current style sheet from within the editor itself and locate elements within the style sheet easily and quickly.
Unlocker can help you find who (or what) locks a file and unlock it.
VirtuaWin creates virtual desktops, which can be used to better organize applications. For example, you can use a dedicated virtual desktop when sharing a presentation.
Who's Locking? finds which process is locking a DLL (you can also use this tool to terminate this process).
Windows Grep combines the power and flexibility of traditional command line grep utilities available on DOS, UNIX and other platforms with the ease of use of Microsoft Windows. In addition to searching, Windows Grep also performs global replacing in your files, with complete safety. Windows Grep is designed for searching plain-ASCII text files, such as program source, HTML, RTF and batch files, but it can also search binary files such as word processor documents, databases, spreadsheets and executables.
Windows Installer Cleanup Utility can help resolve installation problems for programs that use Microsoft Windows Installer (MSI). It provides a dialog box in which you can select one or more programs that were installed by Windows Installer and removes the files and registry settings that make up the Windows Installer configuration information for programs that you select. The tool does not remove the application files.
Windows SteadyState offers the ability to revert a computer to a previously stored state every time it reboots (or when an administrator sets it to). Useful for testing new applications from untrusted sources.
Windows SysInternals offer system utilities to manage, troubleshoot, and diagnose the Windows operating system and applications (you can run most of the GUI-based tools directly from the SysInternals Live site).
Windows System Control Center (WSCC) makes it easier to use system utilities offered by SysInternals and NirSoft.
WinMerge is a visual text file differencing and merging tool. I find it easier to use and more comprehensive than WinDiff that comes with Visual Studio SDK.
ZoomIt is a screen zoom and annotation tool for technical presentations.

For more (free) tools, see these sites:

Essential Developer Productivity Tools
Free .NET Refactoring Tools
Scott Hanselman's 2006 Ultimate Developer and Power Users Tool List for Windows
Windows 2000 Resource Kit Tools for administrative tasks


  1. Hi Alek,

    Nice list of tools.

    Maybe FileMon and RegMon should be explicitly flagged as "deprecated", since Process Monitor replaces them? I personally only use PM now. On the FileMon download page it says: "Note: Filemon and Regmon have been replaced by Process Monitor on versions of Windows starting with Windows 2000 SP4, Windows XP SP2, Windows Server 2003 SP1, and Windows Vista. Filemon and Regmon remain for legacy operating system support, including Windows 9x."

    Alan Cobb

  2. Thanks Alan. You're right, having Process Monitor makes the other two tools unnecessary, but I included them just in case. I'm more used to them, because they're a bit simpler to use (since they do less). I will probably remove them at some point.