2013-04-18 2 views
-2

Вот и проблема. В нашей программе у нас есть надстройка (машинное видение), которую клиенты могут редактировать самостоятельно. Мы предоставляем шаблон для этого дополнения в VB.NET 2010. Затем они копируют этот шаблон и переименовывают его (в зависимости от того, что им нравится) и редактируют пару вещей. Проблема в том, что я хотел бы ограничить клиента одновременно открывая более одной копии этого шаблона.Остановка нескольких запущенных программ

Очевидно, что я выбрал один экземпляр, но поскольку на самом деле это разные программы, это не позволит им открывать один и тот же шаблон дважды. Моя первая мысль заключалась в том, что я могу изменить имя процесса и поместить что-то общее (myCompany -) перед именем сборки, но я не думаю, что это возможно. Мне было интересно, знает ли кто-нибудь другой способ проверить, что эта программа открыта. Очевидно, что мы можем отредактировать наш шаблон, чтобы поместить что-то во все копии своего шаблона (который можно было проверить), но я не могу придумать ничего доступного.

+0

Почему вы хотите ограничить заказчика открытием более одной копии вашего шаблона? – jsedano

+0

Является ли это надстройкой для Microsoft Office? Или для Visual Studio? Или что-то другое? Я не знаю, что вы подразумеваете под «шаблоном». Как пользователи открывают его? Он содержит какой-либо код, который запускается при запуске? Я бы рекомендовал использовать семафор или другой тип блокировки. –

ответ

1

Я не могу понять, почему вы хотите предотвратить отображение шаблона более одного раза. Я никогда не пробовал ничего подобного, но я бы попытался использовать System.Diagnostics.Process.Kill и убить любой новый экземпляр программы. Таким образом, вам понадобится ваша программа для мониторинга того, запускается ли имя процесса более одного раза и завершается каждый запуск, но первый.

0

Спасибо за все комментарии. На самом деле, сегодня утром я получил эту работу. Это скорее беспорядок. Программа видения (шаблон) подключается к аппаратной камере. Эта камера может подключаться только один раз, поэтому, когда открывается второй шаблон, он открывается с ошибкой.

Исправление, с которым я столкнулся, заключается в том, что клиенты помещают все эти папки в папку Vision, и им дается указание указать папку с тем же именем, что и имя сборки или процесса, поэтому я просто искал в папке и убейте запуск формы, если уже существует программа с открытием любого из имен папок. Может быть, немного грязно, но это то, что сработало.

Смежные вопросы