Есть даже более простой метод:
Используйте следующий код ...
Imports System.IO
В событии загрузки основной формы выполните следующее:
If File.Exist(Application.StartupPath & "\abc.txt") Then
'You can change the extension of the file to what ever you desire ex: dll, xyz etc.
MsgBox("Only one Instance of the application is allowed!!!")
Environment.Exit(0)
Else
File.Create(Application.StartupPath & "\abc.txt", 10, Fileoptions.DeleteonClose)
Endif
Это позаботится как об отдельных экземплярах, так и о тонких клиентах, и этот файл нельзя удалить во время работы приложения. и при закрытии приложения или в случае сбоя приложения файл будет удален сам.