﻿I need to know how you guys prevent another instance of the same application to startup in C#? Without using a mutex…

I know VB (at least VB.NET) has a nice event you can hook into. Not that I’m a fan of VB, except for this event and the easy way you can display a splash screen…

Is there not some collection, list or method I can look into?

I currently use a mutex, but this is way to much code for the simple task that it must do…

I think Mutexes are good solution - how is it too much code when you can create and check a mutex with one line of code each?
Another common method is to lock a handle to a file or just create some sort of semaphore file to say you're online.

This will not work. Nothing prevents the user from renaming the EXE. And another thing is that the process name has ".vshost" appended to it if you run it from the IDE (thus running the same EXE from Windows Explorer, the name will not match).

that you could use FileSystemWatcher (and a anonymous delegate for Renamed event) to watch if someone will change filename of the executable, i don't know how much overhead this will make?, so may be stupid. And put all code in a "public static bool IsSingleInstance
{ get { ... } }" property, that would be nice, minimal changes...