It's really a matter of taste, but I favor the Mutex
approach, simply due to it not requiring a dependency on the VisualBasic libaries, and using Process.GetProcessNames
is a non-ideal solution (as mentioned, process names aren't always going to map to what you think they might)