An interesting question, and I hope a mutex guru will be along shortly ... meanwhile ...
I assume this is Windows Forms.
If you are willing to reference the VisualBasic.dll in your C# project, a non-mutex solution is available. This would use the Microsoft.VisualBasic.ApplicationServices library in the VB.NET facilities, and, specifically, use the WindowsFormsApplicationBase Class.
Chris Sells explored this in Chapter 14 of his book, "Windows Forms 2.0 Programming," and, that chapter, "Applications," ... with updated content since publication ... is available, free, for download, as a .pdf, here: [
^].
The content on Singleton Applications begins at pp. 560, and he includes specific details, and code, for accomplishing what ... I think ... you want.
The source-code for the 2nd. edition of the book is downloadable as a .zip file here: [
^], and in the source-code for Chapter 14 is an example of a SingleInstanceApplication. I've verified that you can convert that code sample to VS 2012 and run it, compiling against either FrameWork 2.0, or 4.5.
Trying out the scenario where the application is run once, and the MainForm is hidden and a second Form is shown, and then double-clicking the Application 'exe file: the first Form is not shown automatically, but, the second Form does
not get focus.
If I have time, later today, I'll see if I can modify Sells' code to give the second Form focus if the first Form is hidden and the user tries to run the Application a second time.
Disclaimer: I was a technical editor for Addison-Wesley on several chapters of Sells' book, but not Chapter 14.