<p>How to determine the applications associated with a particular extension (e.g. .JPG) and then determine where the executable to that application is located so that it can be launched via a call to say System.Diagnostics.Process.Start(...).</p>

<p>I already know how to read and write to the registry.  It is the layout of the registry that makes it harder to determine in a standard way what applications are associated with an extension, what are there display names, and where their executables are located.</p>

The file type associations are stored in the Windows registry, so you should be able to use the
Microsoft.Win32.Registry class
to read which application is registered for which file format.
Here are two articles that might be helpful:
Reading and Writing the Registry in .NET
Windows Registry Using C#