По моему опыту, нельзя вообще решить, будет ли приложение запускаться дважды или нет. Например, может быть вполне допустимым запускать одно и то же приложение, если оно запущено в другой папке или под другой учетной записью пользователя или чем-то еще. С другой стороны, может случиться так, что два разных приложения могут не работать вместе, если они запущены в одной папке или около того.
Таким образом, помимо различных подходов с мьютексами и семафорами и обработкой условий гонки, это мудрый выбор имени мьютекса или семафора, который соответствующим образом обрабатывает вышеуказанные комбинации.
Если приложение может вообще не запускаться дважды, возьмите GUID как имя. Вы даже можете использовать имя файла exe, если можете игнорировать, что кто-то может его переименовать.
Ограничив одноразовый запуск для определенной папки, вы можете принять во внимание путь к exe, но имейте в виду, что из-за сопоставлений разные пути могут оказаться в одном и том же exe.