User Pixel answered my question but I wanted to provide more detail for future searchers. The code is available at http://www.getcodesamples.com/src/FBB7577C/7A33AB93 but if it disappears just search for CreateProcessAsUserWrapper. Paste the code into your Service1.cs workspace and remove the top namespace line and corresponding brackets since you already have a namespace. So the first line will be:
class CreateProcessAsUserWrapper
Also, put it AFTER your service class, which must be the first class. I did not have to add any using statements, so I don't know which ones it uses. I'll paste all the ones I used below.
using Microsoft.Win32; // for registry key
using System;
using System.Collections; // for getfiles
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics; // for log writing
using System.IO; // for file watcher, file i/o, directory.exists
using System.Linq;
using System.Net;
using System.Runtime.InteropServices; // for SHGetKnownFolderPath
using System.Security.Permissions; // for file watcher, registry key
using System.ServiceProcess;
using System.Text;
using System.Threading; // for sleep
using System.Timers; // for timers
Then, as Pixel mentioned, all you have to do is call it from inside your service like:
CreateProcessAsUserWrapper.LaunchChildProcess("C:\\blah\\WpfApplication1.exe")