Мне нужно заблокировать приложение, если оно запускается из той же папки, но разрешить его, если то же приложение запускается из других папок.
Проблема в том, что когда приложение закрывается, оно становится невидимым, но все еще находится в памятипотому что это прекращает какую-то внутреннюю работу.
Вполне возможно, что пользователь снова запустит это приложение из той же папки, когда старый экземпляр все еще останется в памяти.
Но, с другой стороны, это должно быть возможно, если это приложение запускаетсяиз других папок.
Любая подсказка, как это сделать в C #?
ОБНОВЛЕНИЯ:
1
На самом деле приложение записывает некоторые журналы влокальные файлы в подкаталоге, а также в файл локальной базы данных.Так что вполне возможно, что это может быть некоторый конфликт между 2 экземплярами.
2
Guid appGuid = Guid.Parse("305BACEA-4074-11E1-85E1-066E4854019B");
public MainWindow()
{
InitializeComponent();
using (Mutex mutex = new Mutex(false, @"Global\" + appGuid) )
{
if (!mutex.WaitOne(0, false))
{
// MessageBox.Show("Instance already running");
// Somehow here I have to get the path of the running instance.
// If the path the same as the current instance has I have do ban starting instance.
return;
}
GC.Collect();
}